关于ai开发:Sora

闲聊一下从去年的大模型开始其实,文生视频的 Ai我的项目 曾经层出不穷,像 Runway、 Pika、 Leonordo 从巨头到各种各样的初创公司。 因为我自身从去年到今年以来也自身始终在做一些Ai方面的工作(Midjourney、MyShell、Character Ai等),我大多数时候感觉很多的模型和产品都是在抬高自己(全世界的Ai产品都这样~),但理论体验比拟 个别 甚至称得上 毛糙。 而为什么 Sora 值得一讲,因为我在 Openai 的宣传中,看到对于视频渲染的 真实性 和 物理世界引擎 连贯性(不得不吐槽一些还几帧几帧的文生图产品)几乎对于其余的文生图模型是降维打击(这是在Gpt之后的第二波了)。 而后当初是在 Beta 版,但我曾经想提前做点事件,去承接一下了。 重要的事件讲三遍!!!它是 Beta版!!!谨防常识付费/欺骗。 Sora只有外部能用,当初这个阶段的常识付费全是割韭菜!!! 什么是Sora?Sora 是 OpenAI 的技术,能够将文本转换成视频,就像是魔术一样,将你的故事或形容的文字以视频的模式出现。它能够为各种各样的场景发明视觉效果,从日常场景到富裕想象力的奇幻场景,能够参考 Dall-e-3的 vivid 和 natural。 它的应用场景首先是最根底的一点,Ai的呈现在某种程度上来说是对于集体和小型团队和工作室的微小利好,所有的Ai工具都是效率工具。 其次它是创造力 和 认知 的延长。 Sora实用于那些心愿从文本中生成 真切 和 想象力 视频的用户。它面向须要生成 简单 场景、角色和动作的集体或组织,比方讲故事、娱乐、教育或内容创作等。能够设想这对于 视频内容创作 的大洗牌。 代码实现看起来它跟其余的Api用法差异不大。 import openaiimport requestsimport time# Set OpenAI API keyopenai.api_key = 'your-api-key'# Define a function to generate video using Soradef generate_video(description, engine="sora-beta", max_tokens=150): try: # Generate video using Sora response = openai.Completion.create( engine=engine, prompt=description, max_tokens=max_tokens ) # Retrieve the generated video URL video_url = response['choices'][0]['video'] return video_url except Exception as e: print("An error occurred:", e) return None# Define a function to download the generated videodef download_video(video_url, output_file): try: # Send request to download video with requests.get(video_url, stream=True) as r: r.raise_for_status() with open(output_file, 'wb') as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) print("Video downloaded successfully!") return output_file except Exception as e: print("An error occurred:", e) return None# Define the main functiondef main(): # Define a short description for the desired video description = "A bustling futuristic cityscape with flying cars and neon lights." # Generate video using Sora video_url = generate_video(description) if video_url: # Define output file path output_file = "generated_video.mp4" # Download the generated video downloaded_file = download_video(video_url, output_file) if downloaded_file: # Display the generated video URL and path print("Generated Video URL:", video_url) print("Downloaded Video Path:", downloaded_file)# Call the main functionif __name__ == "__main__": main()它是如何工作的?Sora 是基于以前的 DALL·E 和 GPT模型钻研的一个弱小的AI模型。它利用了在 DALL·E 3模型中采纳的从新题目(re-captioning)技术,这种技术可能为视觉训练数据生成高度形容的字幕。 ...

February 17, 2024 · 2 min · jiezi

关于ai开发:揭示CTGAN的潜力利用生成AI进行合成数据

举荐:应用NSDT场景编辑器助你疾速搭建可编辑的3D利用场景 咱们都晓得,GAN在生成非结构化合成数据(如图像和文本)方面越来越受欢迎。然而,在应用GAN生成合成表格数据方面所做的工作很少。合成数据具备许多益处,包含其在机器学习应用程序、数据隐衷、数据分析和数据加强中的应用。只有多数模型可用于生成合成表格数据,CTGAN(条件表格生成反抗网络)就是其中之一。与其余 GAN 一样,它应用生成器和鉴别器神经网络来创立与实在数据具备类似统计属性的合成数据。CTGAN能够保留实在数据的底层构造,包含列之间的相关性。CTGAN的额定益处包含通过特定于模式的规范化来加强训练过程,一些架构更改,以及通过应用条件生成器和采样训练来解决数据不均衡问题。 在这篇博文中,我应用CTGAN依据从Kaggle收集的信用剖析数据集生成合成数据。 CTGAN的长处生成与理论数据具备相似统计属性的合成表格数据,包含不同列之间的相关性。保留实在数据的底层构造。CTGAN生成的合成数据可用于各种利用,例如数据加强,数据隐衷和数据分析。能够解决间断、离散和分类数据。 CTGAN的毛病CTGAN须要大量的实在表格数据来训练模型并生成与实在数据具备类似统计属性的合成数据。CTGAN是计算密集型的,可能须要大量的计算资源。CTGAN生成的合成数据的品质可能会有所不同,具体取决于用于训练模型的实在数据的品质。 调整CTGAN与所有其余机器学习模型一样,CTGAN在调优时体现更好。在调整CTGAN时须要思考多个参数。然而,对于此演示,我应用了“ctgan 库”附带的所有默认参数: 纪元:生成器和鉴别器网络在数据集上训练的次数。学习率:模型在训练期间调整权重的速率。批量大小:每次训练迭代中应用的样本数。生成器和鉴别器网络大小。优化算法的抉择。CTGAN还思考了超参数,例如潜在空间的维数,生成器和判断器网络中的层数以及每层中应用的激活函数。参数和超参数的抉择会影响生成的合成数据的性能和品质。CTGAN的验证CTGAN的验证是辣手的,因为它存在局限性,例如难以评估生成的合成数据的品质,特地是在波及表格数据时。只管有一些指标可用于评估实在数据和合成数据之间的相似性,但确定合成数据是否精确示意实在数据中的基本模式和关系依然具备挑战性。此外,CTGAN容易受到适度拟合的影响,并且能够产生与训练数据过于类似的合成数据,这可能会限度它们泛化到新数据的能力。 一些常见的验证技术包含: 统计测试:比拟生成数据和实在数据的统计属性。例如,应用相关性剖析、柯尔莫哥罗夫-斯米尔诺夫测验、安德森-达林测验和卡方测验等测验来比拟生成的数据和实在数据的散布。可视化:通过绘制直方图、散点图或热图来可视化异同。应用程序测试:通过在理论应用程序中应用合成数据,查看其性能是否与实在数据类似。 个案研究对于信用剖析数据信用剖析数据蕴含间断和离散/分类格局的客户数据。出于演示目标,我通过删除具备 null 值的行并删除本演示不须要的几列来预处理数据。因为计算资源的限度,运行所有数据和所有列将须要大量的计算能力,而我没有。以下是连续变量和分类变量的列列表(离散值,如子变量计数 (CNT_CHINDREN) 被视为分类变量):分类变量: TARGET NAME_CONTRACT_TYPECODE_GENDERFLAG_OWN_CARFLAG_OWN_REALTYCNT_CHILDREN连续变量: AMT_INCOME_TOTALAMT_CREDITAMT_ANNUITYAMT_GOODS_PRICE生成模型须要大量洁净的数据来训练以取得更好的后果。然而,因为计算能力的限度,我从超过 10,000 行的实在数据中只抉择了 9,993 行(正好是 300,000 行)进行本演示。尽管这个数字可能被认为绝对较小,但对于本演示的目标来说应该足够了。 实在数据的地位:https://www.kaggle.com/datasets/kapoorshivam/credit-analysis 生成的合成数据的地位: CTGAN的综合信用剖析数据(Kaggle)CTGAN生成的合成表格数据集(钻研门)DOI: 10.13140/RG.2.2.23275.82728 后果我生成了 10k(确切地说是 9997)合成数据点,并将它们与实在数据进行了比拟。后果看起来不错,只管仍有改良的后劲。在我的剖析中,我应用了默认参数,其中“relu”作为激活函数和 3000 个 epoch。减少纪元的数量应该能够更好地生成相似实在的合成数据。生成器和鉴别器损失看起来也不错,损耗越低,示意合成数据和实在数据之间的相似性越近: 相对对数平均值和标准差图中沿对角线的点示意生成的数据品质良好。 下图中间断列的累积总和并不齐全重叠,但它们很靠近,这表明合成数据的生成良好且没有适度拟合。分类/离散数据的重叠表明生成的合成数据靠近实在。进一步的统计分析见下图: 以下关联图显示了变量之间的显著相关性。重要的是要留神,即便通过彻底的微调,实在数据和合成数据之间的属性也可能存在差别。这些差别实际上是无益的,因为它们可能会揭示数据集中可用于创立新解决方案的暗藏属性。据察看,减少纪元数能够进步合成数据的品质。 变量之间的相关性(实在数据) 变量之间的相关性(合成数据)样本数据和理论数据的汇总统计仿佛也令人满意。 实在数据和合成数据的汇总统计 Python代码# Install CTGAN!pip install ctgan# Install table evaluator to analyze generated synthetic data!pip install table_evaluator# Import librariesimport torchimport pandas as pdimport seaborn as snsimport torch.nn as nnfrom ctgan import CTGANfrom ctgan.synthesizers.ctgan import Generator# Import training Datadata = pd.read_csv("./application_data_edited_2.csv")# Declare Categorical Columnscategorical_features = [ "TARGET", "NAME_CONTRACT_TYPE", "CODE_GENDER", "FLAG_OWN_CAR", "FLAG_OWN_REALTY", "CNT_CHILDREN",]# Declare Continuous Columnscontinuous_cols = ["AMT_INCOME_TOTAL", "AMT_CREDIT", "AMT_ANNUITY", "AMT_GOODS_PRICE"]# Train Modelfrom ctgan import CTGANctgan = CTGAN(verbose=True)ctgan.fit(data, categorical_features, epochs=100000)# Generate synthetic_datasynthetic_data = ctgan.sample(10000)# Analyze Synthetic Datafrom table_evaluator import TableEvaluatorprint(data.shape, synthetic_data.shape)table_evaluator = TableEvaluator(data, synthetic_data, cat_cols=categorical_features)table_evaluator.visual_evaluation()# compute the correlation matrixcorr = synthetic_data.corr()# plot the heatmapsns.heatmap(corr, annot=True, cmap="coolwarm")# show summary statistics SYNTHETIC DATAsummary = synthetic_data.describe()print(summary)论断CTGAN的训练过程无望收敛到生成的合成数据与实在数据无奈辨别的水平。然而,在事实中,不能保障趋同。有几个因素会影响CTGAN的收敛性,包含超参数的抉择、数据的复杂性和模型的架构。此外,训练过程的不稳定性可能导致模式解体,其中生成器仅生成一组无限的类似样本,而不是摸索数据分布的全副多样性。 ...

September 11, 2023 · 1 min · jiezi

关于ai开发:极光笔记-如何为您的业务开发和训练一个AIBOT

生成式AI(Generative AI)是当今科技领域的前沿技术之一。随着数据量的一直减少和计算能力的一直晋升,AI技术在企业和集体生存中的利用越来越宽泛。AI-BOT(以下简称BOT)是生成式AI技术的其中一种重要的利用模式,它能够通过学习各类业务数据信息,帮忙人们执行一系列工作,从而进步工作效率,缩小人力老本。 而GPTBots作为BOT开发平台,始终是生成式AI的前沿探索者。本文将与您分享,如何在GPTBots上,为您的业务开发和训练一个领有高可用性的BOT。 PART 01 筹备工作注册GPTBots平台注册一个GPTBots账号,是开发BOT的第一步。进入GPTBots平台(https://gptbots.ai/developer),点击【注册】,并登录到【开发者后盾】。实现注册后,平台会为您赠送一些积分,这些积分可能让您进行平台性能的初体验,例如创立BOT、调试BOT、训练BOT等。如果实现企业认证,还能够取得高达 500 积分的赠送。 业务剖析首先,您须要明确BOT在您的业务中的定位和指标。 定位指的是BOT在您的业务中的非凡地位,它被用于解决某个特定畛域的问题,因而与其余BOT是存在差别的。指标指的是BOT在您的业务中所能达成的具体后果,例如降低成本、晋升人效等。 咱们建议您能够把BOT了解为一名员工,这位员工常识渊博,无所不知,但在某些业余畛域又有些欠缺。不过,只须要提供相干专业知识,它就能够化身领域专家,无效解决业余问题。因而,在明确定位和指标时,咱们能够这么思考: 定位: 一名十分业余的电商售后客服人员,他对于公司业务一目了然,可能疾速且业余地为客户解决各类型售后问题。 指标: 晋升客户服务效率和品质,升高客户服务老本。其次,您须要理解BOT所需解决的业务畛域中存在的问题和挑战。理解这些,有助于帮忙您进一步定位BOT的能力范畴。 数据收集在明确了BOT的定位和指标后,咱们须要为BOT进行数据收集。 依据上文咱们提供的倡议,咱们把这个BOT设想成为一名无所不能的员工。但一名弱小的员工,除非局部人有天才以外,更多地肯定是通过一直的常识学习和教训积攒后能力做到的。而BOT的数据,指的就是BOT须要学习的常识。 持续应用上文的例子。“一名十分业余的电商售后客服人员”,肯定是领有十分丰盛的公司售后业务知识,包含但不限于:公司的售后服务政策、公司历史解决售后问题经典案例…… 因而,咱们须要做以下工作:1. 收集数据。作为给这个“电商售后BOT”的学习材料; 数据分类。分类越清晰,越有助于BOT常识的保护治理,以及晋升BOT的响应品质。例如电商售后服务常识,咱们能够大抵分类为:服务总则、服务细则、服务流程、常见问题、经典案例等;数据荡涤及预处理。以保障最终给BOT学习的数据是绝对“洁净”,不含“杂质”的。留神,数据的收集并不是越多越好,更重要的是数据的品质。咱们须要给BOT“学习”高质量的常识,BOT能力给咱们输入高质量的后果。PART 02 构建BOT在以上筹备工作均已实现后,就能够开始构建这个“电商售后BOT”。 更多的GPTBots应用教程,请拜访GPTBots官网文档(https://gptbots.gitbook.io/gptbots.zh/),在本文中不做具体开展。 创立BOT依据业务理论,创立适合类型的BOT。GPTBots定义了两类BOT:- 常识问答:领有“短记忆”能力,实用于一些简略的问答场景,例如翻译、客服、常识检索等; 智能助理:领有“短记忆+长记忆”能力,实用于较为简单的对话场景。用户可按本身理论需要来抉择BOT类型。 身份提醒撰写技巧在构建BOT的过程中,比拟重要的一个环节,就是为BOT撰写身份提醒。 身份提醒可用来塑造BOT的身份、能力,边界和情绪等。一个优质的身份提醒,可能让BOT以更加合乎冀望地回复用户问题。 咱们能够用一个通用的构造来撰写身份提醒,如下:- 角色:BOT须要负责的角色,如“业余的售后服务人员”; 技能:BOT须要领有的技能,如“杰出的售后服务能力与客户沟通技巧”;共性:BOT的语气、共性、沟通形式等,如“语气请温和,用词需礼貌”指标:BOT的工作指标,如“基于参考内容及客户发问,答复客户的问题”;链式思考:为BOT提供一些思考流程与形式,以疏导BOT依照你的要求进行思考和解决问题,如“MUST follow these steps to answer the customer queries: Step1 - Step2 - Step3 - Step4...”。在一些较为垂直、特定的场景下,该办法十分好用。输入规定:若您须要BOT输入内容为特定构造或格局(如:json、markdown……),您也能够在此定义。请留神,这部分不是必须的,可按理论需要撰写。以上文“电商售后BOT”为例,咱们能够这样撰写身份提醒: 请表演一名业余的售后服务人员。你领有杰出的售后服务能力与客户沟通技巧。你的工作是,基于参考内容及客户发问,答复客户的问题。语气请温和,用词需礼貌。 PART 03 训练BOT在设定好BOT的根本信息后,咱们须要对BOT进行常识“投喂”以及训练。 常识输出咱们须要将数据收集阶段收集到的售后服务类数据,以适合的格局,“投喂”给BOT进行训练。GPTBots平台目前反对文档导入(.docx、.md、.txt、……)、网站爬取、在线文本、在线Q&A等形式进行常识输出。 向量搜寻训练实现后,能够立即通过“向量搜寻”性能,对常识进行向量搜寻测试,查看命中状况,目标是为了察看曾经训练好的常识在面对理论问题时,是否可能无效地实现信息召回。 聊天记录训练在BOT曾经投入使用后,咱们仍然能够对BOT进行重复训练。 目前GPTBots反对基于用户的聊天记录进行训练。这种训练形式的劣势在于,训练的语料应用的是用户在应用BOT过程中理论产生的对话,应用这些对话作为训练资料,可能让BOT更无效地靠近理论的用户应用场景。 调试BOT调试模式能够帮忙开发者一边应用BOT一边调整BOT参数,以让BOT达到开发者所冀望的成果。 PART 04 更简单的场景,如何解决?在理论业务中,会很多远比售后服务问答要简单得多的场景。面对这些场景,GPTBots提供了更丰盛的解决形式以应答。 为BOT插上翅膀——插件能力大语言模型(LLM)自身是有常识范畴限度的,当须要LLM帮忙咱们解决更多业务定制化的、简单的工作时,咱们能够通过为LLM增加插件的形式,扩大LLM的能力,使BOT领有更加弱小的能力。 GPTBots以后已反对插件性能。GPTBots官网曾经提供了一些收费的公开插件供用户应用(更多的官网插件正在陆续开发中……)。同时,GPTBots也反对开发者自行开发插件,以个性化地笼罩本身的业务场景。例如,开发者能够通过开发插件,将BOT对接到本人的业务零碎,调用本人的业务数据,让BOT来解决特定业务工作。 用可视化流程(FLOW)构建BOT若是存在更加简单的业务场景,则能够通过可视化流程(FLOW)来构建BOT。GPTBots目前正在内测的FLOW构建BOT性能。咱们将一个BOT应有的或常见的模块形象为多个组件,用户能够通过在可视化面板上利落拽的形式,个性化地构建一个简单场景下的BOT,以解决更加垂直、更加特定场景下的问题。 将BOT与业务连贯GPTBots反对将构建好的BOT与用户本人的业务进行连贯,目前次要有以下三种形式:- API:GPTBots以后提供了多个与BOT进行交互的API,包含但不限于创立对话、发送音讯、获取音讯等; iframe网页嵌入:将BOT对话界面以iframe的模式嵌入到您的网页内进行应用;bubble网页小部件:将BOT以bubble小部件的模式嵌入到您的网页内进行应用,它将以气泡的模式,展现在您网页的右下角。写在最初在生成式AI倒退迅猛的明天,GPTBots为开发者提供了弱小的自主构建AI-BOT的能力,可能帮忙开发者疾速高效地构建个性化的BOT,以解决其业务痛点或问题,驱动业务增长。 拜访极光GPTBots官网 https://www.gptbots.a立刻注册体验注册即赠送积分赠送。参加企业认证或邀请好友注册,也能获取更多积分~ 对于极光极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国当先的客户互动和营销科技服务商。成立之初,极光专一于为企业提供稳固高效的音讯推送服务,凭借先发劣势,曾经成长为市场份额遥遥领先的挪动音讯推送服务商。随着企业对客户触达和营销增长需要的不断加强,极光前瞻性地推出了音讯云和营销云等解决方案,帮忙企业实现多渠道的客户触达和互动需要,以及人工智能和大数据驱动的营销科技利用,助力企业数字化转型。

August 17, 2023 · 1 min · jiezi

关于ai开发:ThinkPHPV80发布AI助力开发体验

ThinkPHPV8.0为基于PHP8的重构版本,降级了相干依赖,官网开启了AI助理晋升开发体验,晋升ThinkORM版本依赖为3.0,反对6.0/6.1的无缝降级。(本文局部内容采纳ThinkChat生成) ThinkPHPV8.0在外围性能上尽管并没有大的更新(事实上大部分用户也不须要太简单的底层性能),作为一个全新的版本,更多的意义在于一种官网的姿势——我思故我在。ThinkPHP在寻求一种扭转或者是新的摸索,从新版LOGO、新版官网,以及一系列的官网生态服务的陆续推出,无一不是在通知用户,咱们心愿为生态、为用户做更多的事件,更好打造官网对大道至简的开发理念和愿景,从而帮忙开发者更好的开发。值此新版公布之际,官网也正式发表推出了的私人开发AI助理服务ThinkChat。 ThinkPHP8.0作为一个全新的版本,承载了官网对将来生态的全新冀望。官网也将始终秉承大道至简及无缝降级的策略,致力打造简略易用的框架及服务,不便生态产品和服务的更新迭代。这一版本的公布,标记着ThinkPHP在继续翻新和改良的路线上迈出了重要一步。新版不仅是对过来版本的降级,更是对国内PHP开发生态的一次推动和变革。置信通过这一全新版本及AI开发助理的引入,将为宽广开发者带来更便捷、高效的开发体验,助力他们构建出更杰出的Web利用。 在ThinkPHP6.0+公布以来的这些年,官网始终在致力于摸索和打造生态及商业模式,在企业常识治理及利用认证方面的一直尝试,让咱们深信只有构建可继续的生态及倒退能力让框架走的更好更远。 在此也要感恩始终以来反对和资助咱们的用户,咱们唯有不负众望,做一个值得开发者信赖的框架,并砥砺前行! 次要更新基于PHP8.0+重构减少startWith、endWith及contain验证规定简化验证类的正则优化路由检测降级PSR依赖依赖think-orm3.0版本8.0版本后续会陆续更新其它性能,6.0/6.1版本将不再做新性能更新,仅限BUG修改和安全更新。 文档8.0版本开始官网手册启用新的域名:doc.thinkphp.cn,并反对版本切换。 官网服务当初开始,你能够应用官网提供的ThinkChat,让你在学习ThinkPHP的旅途中享受私人AI助理服务! 资助咱们ThinkPHP全新的资助打算,能够让你通过咱们的网站、手册、欢送页及GIT仓库取得微小曝光,同时晋升企业的品牌名誉,也更好保障ThinkPHP的可继续倒退。

July 1, 2023 · 1 min · jiezi

关于ai开发:客户案例云联壹云帮助华北电力大学搭建-AI-训练平台

客户介绍华北电力大学是教育部直属全国重点大学,是国家“211 工程”和“985 工程劣势学科翻新平台”重点建设大学。2017 年,学校进入国家“双一流”建设高校行列,重点建设能源电力迷信与工程学科群,全面开启了建设世界一流学科和高水平研究型大学的新征程。 为了不便人工智能相干业余的教研、教学、学生实际,学校基于云联壹云新一代企业级公有云平台建设了 AI 训练平台,同时和本身的办公特点相结合,实现了资源的流程化、自动化、精细化治理,进步了教学质量和教研效率的同时,升高建设老本和保护老本。 客户痛点教学资源申请交付效率有待进一步提高; GPU 调度不灵便,算力没有开释; 机型繁多,虚拟化工具不适配老旧机型; 教研教学 IT 资源的计量计费; 资源使用率低,无奈具体量化。 解决方案平台自服务,工单流程放慢资源交付; GPU 灵便调度,进步 GPU 的利用率; 适配兼容多服务器机型,设施利旧; 提供公有云账单解决方案,老师、学生应用资源有据可依。 部署架构 客户收益资源申请速度较以往晋升 200%,管理员投入人力缩小 2/3; 开释 GPU 算力,GPU 资源利用率晋升 300%; 异构设施利用率晋升,升高新设施洽购老本 25%; 平台提供公有云账单性能,资源应用更加清晰。 以上是文章的次要内容,作为交融云/多云治理/公有云/FinOps 厂商,云联壹云会继续关注这些畛域的动静,分享相干的信息和技术,能够通过的官网(yunion.cn)或关注的公众号(云联壹云)来获取最新的信息,感激大家的工夫。 原文地址:https://www.yunion.cn/article/html/20230609.html 举荐浏览企业面对FinOps,到底能做些什么?总结了4个方面 云联壹云交融云治理平台的 10 大利用场景 Flexera 2023 云状态报告解读 新品公布 | Cloudpods 3.10版本上线!

June 9, 2023 · 1 min · jiezi

关于ai开发:鹅厂专家讲透AI文本生成解码策略与代码实现

腾小云导读 本文以 huggingface-transformers 的文本生成解码代码为例,对文本生成罕用的五种解码策略 greedy search、beam search、sample、sample and rank & beam sample、group beam search 进行逐行解读。每一大节首先会介绍对应解码策略的原理,接着给出供大家疾速上手的代码示例,并逐层介绍调用过程,最初给出所应用到的所有类之间调用的时序图。由简到繁再到简,帮忙大家建设起一个整体的意识,并且可能疾速利用。干货较多,欢送浏览并进行实际尝试。 目录 1 总体介绍 2 greedy search 2.1 原理介绍 2.2 疾速上手 2.3 代码解读 2.4 整体流程 3 beam search 3.1 原理介绍 3.2 疾速上手 3.3 代码解读 3.4 整体流程 4 sample 4.1 原理介绍 4.2 疾速上手 4.3 代码解读 4.4 整体流程 5 sample and rank & beam sample 5.1 原理介绍 5.2 疾速上手 5.3 代码解读 5.4 整体流程 6 group beam search ...

June 5, 2023 · 32 min · jiezi

关于ai开发:开源之夏-2023欢迎报名-DLRover-社区项目

开源之夏是由“开源软件供应链点亮打算”发动并长期反对的一项暑期开源流动,旨在激励在校学生积极参与开源软件的开发保护,促成优良开源软件社区的蓬勃发展,造就和挖掘更多优良的开发者。 流动联结国内外各大开源社区,针对重要开源软件的开发与保护提供我的项目工作,并面向寰球高校学生凋谢报名。 2023 年,DLRover 社区退出中国科学院软件研究所的高校开源流动——“开源之夏 2023”,一共为大家筹备了四个工作,波及 AI、Python、Linux、Kubernetes、Deep learning、Docker、Algorithm 等多个畛域。 DLRover 我的项目介绍 DLRover (Distributed Deep Learning System) 是蚂蚁团体 AI Infra 团队保护的开源社区,是基于云原生技术打造的主动分布式深度学习零碎。DLRover 使得开发人员可能专一于模型架构的设计,而无需解决任何工程方面的细节,例如硬件加速和分布式运行等。目前,DLRover 反对应用 K8s、Ray 进行自动化操作和保护深度学习训练任务。 流动规定 开源之夏官网: https://summer-ospp.ac.cn/ 各位同学能够自由选择我的项目,与社区导师沟通实现计划并撰写我的项目计划书。被选中的学生将在社区导师领导下,按计划实现开发工作,并将成绩奉献给社区。社区评估学生的完成度,主办方依据评估后果发放赞助金额给学生。 DLRover 社区我的项目 我的项目链接:https://m.summer-ospp.ac.cn/org/orgdetail/3dd008dd-3875-4ee1-bd2c-016202e58f86 我的项目社区导师:长凡 mailto:qinlong.wql@antgroup.com 数据并行同步训练主动资源配置算法 项目编号:233dd0048 我的项目难度:根底/Basic 在同步数据并行训练中,每个 Worker 计算一个 Micro Batch 后会和其余 Worker 通过 Allreduce 同步梯度,而后更新模型参数。Worker 数量会影响 Batch Size 和通信开销。Batch Size 会继而影响模型精度,而通信开销会影响训练吞吐,因而如何为模型寻找适合的 Worker 数量来晋升训练吞吐和精度是比拟难的。现阶段用户须要重复提交作业来寻找最优的配置。DLRover 当初反对数据并行的弹性训练,能够在训练过程中扭转 Worker 数量,从而寻找最优的数量配置。 须要输入代码、文档、实验报告。须要纯熟应用 Kubernetes、Python。我的项目社区导师:玄钛 mailto:hanxudong.hxd@antgroup.com 反对 TorchRec 的弹性容错 项目编号:233dd0049 我的项目难度:根底/Basic TorchRec 是 PyTorch 反对大规模举荐模型的框架,其训练采纳同步的模型并行加数据并行训练。咱们在星散群上提交 TorchRec 的分布式训练作业时,须要思考容错和弹性。目前,DLRover 实现了数据并行训练和节点的容错与弹性调度,反对了 PyTorch 的 DDP。对于 DeepRec 模型并行训练,节点出错后须要思考两种形式:节点从新拉起来复原训练;节点资源被抢占,须要更新设施上的模型分片。 ...

May 11, 2023 · 1 min · jiezi

关于ai开发:百度AI开发者-AKSK申请

吐槽一下百度开发者文档:1、最大问题:文档没有梳理分明。外面文档太乱了,昨天去调用“文本信息提取”api,依据文档去创立AK、SK基本找不到中央,起初也不晓得从哪里进去创立好了利用,明天再进去的时候,又找不到了,真是头晕。在这之前,我还屡次调用过百度的地图api,那个文档感觉就清晰一些。2、文档内容不残缺。预计是百度开发人员业务太忙了,整进去的文档都是半成品,不是有肯定功底的人,初学者真是会被文档整吐血。3、登录状态没有买通。各个文档和控制台等平台之间登录信息没有买通,总叫我登录,这么大一家技术型公司,还有这么低级的问题,真是让人无语。 正筹备去提交意见给百度,后果点进去就显示了如何去申请AK、SK的链接。这个链接不像api文档中的链接,这个是正确无效的,尽管我至今还没找到正式的入口,好歹找到一个隐秘口子,连忙记录下来。地址:https://cloud.baidu.com/doc/Reference/index.html点击治理控制台,进去后就能够创立利用了。点击左侧的利用列表,就能够看到本人已经创立过的利用,这外面就有你的AK、SK。

April 27, 2023 · 1 min · jiezi

关于ai开发:亲们看过来2023首场昇腾AI开发者创享日来到东北黑土地沈阳

2023年3月11日,依靠沈阳人工智能计算中心与沈阳昇腾人工智能生态翻新核心,昇腾AI开发者创享日全国巡回流动首站将来到沈阳,昇腾AI将携手开发者一起“创将来,享不凡”。当全国重工业老大哥遇上昇腾AI,首场创享日流动注定精彩绝伦! 西南“老大哥”辽宁:干劲十足,带头搞AI 西南的数字化转型,虽不是最快的,但却是最典型的。特地是在2021年,科技部正式发函批复,反对沈阳建设国家新一代人工智能翻新倒退试验区后,通过充分发挥人工智能对沈阳制造业转型降级和西南老工业基地全面振兴的辐射带动作用,沈阳国家核心城市建设再次加速度,并向“西南数字第一城”的指标继续迈进。 通过人工智能、大数据、物联网等新一代信息技术,为“老字号”产业赋能增效;大力发展工业机器人等“新字号”产业,重塑工业振兴的“发动机”。2022年8月,在昇腾AI助力下,沈阳人工智能计算中心完工并投入经营,为沈阳建成西南“数字第一城”提供弱小算力。 创享日首站到沈阳:亮点颇多,够得劲 基于此,昇腾AI开发者创享日首站流动就走进西南,当开发者老铁遇上昇腾AI,这场流动注定“够得劲”! 大神嘉宾齐聚,点亮人工智能将来方向 本次流动拟邀辽宁省科技厅相干领导,中煤科工团体沈阳研究所有限公司首席科学家王雷,东北大学软件学院传授郭贵冰,华为昇腾计算业务CTO周斌,昇腾CANN生态首席专家杜鹏等多位政产学研界大咖。 他们将会带来本地人工智能产业倒退最新趋势、前沿AI技术解析、人工智能技术创新利用实际案例分享等重要内容,帮忙开发者更深刻地理解沈阳人工智能计算中心在沈阳,乃至西南区域人工智能产业倒退中表演的角色、平台劣势、翻新利用场景等,与开发者独特点亮人工智能将来方向。 系列签约,推动人工智能产学研用全面倒退 倒退人工智能,辽宁省特地关注“产学研用”的多维推动。本次流动,围绕产学研用将举办一系列签约及揭牌典礼。 产业转型赋能方面,聚焦“将来工业互联网科研基础设施”平台建设,将举办辽宁辽河实验室人工智能单干签约典礼。 学研翻新孵化方面,东北大学、沈阳昇腾人工智能生态翻新核心单干建设的“沈阳.太一”大模型联结实验室将举办揭牌典礼,将来基于多模态举荐模型,沈阳将在大数据、互联网等以内容为外围的行业畛域进行利用场景和社会价值的摸索。 业余人才培养方面,为更好地帮忙当地高校发展人工智能学科建设和人才培养,本次流动将举办人才倒退减速打算签约典礼。同时,为推动当地专家人才入驻计算中心、晋升高校教师、企业开发者的AI技术能力,流动中还将举办沈阳人工智能计算中心专家聘任典礼。 重磅公布,昇腾矿用机器人解决方案减速矿山智能化建设 作为我国的老工业基地,辽宁省有着倒退机器人产业的制造业底蕴和技术根底。近些年,在“人工智能+”牵引下,煤矿机器人在整个煤矿行业曾经产生深远影响,正继续推动煤炭生产方式的“智能化”改革。 联合昇腾AI根底软硬件平台的劣势及沈阳人工智能计算中心技术团队的深刻反对,中煤科工团体沈阳研究院有限公司正在研发多款基于昇腾Atlas 200 AI减速模块、Atlas 500智能小站等的矿用机器人,并已有落地利用的矿用机器人案例,流动中,还将重磅公布昇腾矿用机器人解决方案。 能唠会玩,创享日就稀奇给开发者“整全套” 创享日始终致力于从“新技术、新体验、新机会”三个维度为开发者发明新价值,因而,新技术解密和各类AI体验流动天然不能少。 开发者不仅能够现场凝听CANN赋能泛机器人前沿钻研介绍、基于昇思MindSpore的“沈阳.太一”模型的实际与思考,还能够参加昇腾AI训练营-Atlas 200I DK A2开发者套件专场、遇见大咖·开发者AI说-走进行业等专场流动。流动期间,计算中心还将联结东北大学和沈阳理工大学举办“走进高校”分会场流动。为了让开发者在流动中“能唠会玩”,创享日AI开发者创享日大放全招。 2022年,昇腾AI开发者创享日相继在西安、成都、南京胜利举办,通过联结全国翻新核心,笼罩百万开发者,造成良好的开发者生态品牌声量。2023年,创享日流动将依靠各区域人工智能计算中心、昇腾人工智能生态翻新核心,夯实经营体系,通过紧跟AI技术热点、继续为行业开发者赋能、加大成功者案例共享等形式,牵引开发者奉献价值,真正推动人工智能与实体经济的无效交融,实现科技翻新的价值转化。 置信首场沈阳站,将在打造一系列围绕昇腾AI的人工智能产业生态、建立沈阳产业建圈强链标杆方面,为其余区域做出表率。3月11日,以AI之名,共赴一场独属于开发者的创享盛宴。让咱们相约2023昇腾AI开发者创享日·沈阳站,不见不散! 共创昇腾产业将来,共享不凡成长、成就、胜利,更多对于昇腾AI开发者创享日沈阳站的精彩内容,可拜访昇腾社区! 精彩流程领先看

March 3, 2023 · 1 min · jiezi

关于ai开发:博学谷人工智能AI进阶年度钻石会员2022最新

download:博学谷人工智能AI进阶年度钻石会员2022最新全面了解Properties类 java.util.Properties继承自java.util.Hashtable,是一个持久化的属性保存对象,可能将属性内容写出到stream中或者从stream中读取属性内容。 它的重要个性如下: 在底层的Hashtable中,每一对属性的key和value都是按照string类型来保存的。Properties反对文本形式和xml形式的数据存储。在文本形式中,格局为key:value,其中分隔符可能是:冒号(:)、等号(=)、空格。其中空格可能作为key的结束,同时获取的值回将宰割符号两端的空格去掉。Properties可能将其余的Properties对象作为默认的值。Hashtable的一切办法Properties对象均可能拜访,然而不倡导这么做,因为Hashtable可能存放其余数据类型,这样会导致Properties一些方法调用报错。在properties文件中,可能用井号"#"来作正文。线程安全key、value不可能是null构造方法Properties()创建一个无默认值的空属性列表。 Properties(Properties defaults)创建一个带有指定默认值的空属性列表。 要害方法getProperty ( String key)根据指定的key获取对应的属性value值,如果在自身的存储会合中没有找到对应的key,那么就间接到默认的defaults属性指定的Properties中获取属性值。 getProperty(String, String)当getProperty(String)方法返回值为null的时候,返回给定的默认值,而不是返回null。 load ( InputStream inStream)从byte stream中加载key/value键值对,申请所有的key/value键值对是按行存储,同时是用ISO-8859-1编译的, 不反对中文。 load(Reader)从字符流中加载key/value键值对,申请所有的键值对都是按照行来存储的。 loadFromXML(InputStream)从xml文件中加载property,底层使用XMLUtils.load(Properties,InputStream)方法来加载。 setProperty ( String key, String value)调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键 - 值对。 store ( OutputStream out, String comments)将所有的property(保存defaults的)都写出到流中,同时如果给定comments的话,那么要加一个正文。 storeToXML(OutputSteam, comment, encoding)写出到xml文件中。 Set stringPropertyNames()获取所有Properties中所有的key会合 clear ()清除所有装载的 键值对。该方法在基类中提供。

September 15, 2022 · 1 min · jiezi

关于ai开发:未来源码-吴恩达教授重磅演讲Tips-for-using-a-datacentric-AI-approach

一个AI零碎蕴含两个局部:模型和数据。 机器学习支流钻研人员致力于在规范数据集上一直优化模型,来进步AI零碎的性能。这种以模型为核心的倒退之路为咱们带来了高性能的模型架构以及模型开发工具,但对数据的优化却绝对落后。 《A Chat with Andrew on MLOps: From Model-centric to Data-centric AI 》演讲中吴恩达通过缺点检测试验表明,优化模型取得的收益不如优化数据集,baseline的准确率为76.2%,换模型调参之后,模型的准确率简直没有晋升,但通过对数据的优化,零碎性能最高晋升了16.9%。 这篇文章总结了吴恩达提出的data-centric AI零碎开发的5大数据优化准则,包含y定义的优化,乐音数据剔除和数据量之间的trade off , 以及如何通过对数据子集进行谬误剖析来晋升零碎性能。data-centric 模式认为数据集的优化应该作为AI零碎的外围过程,随零碎一直迭代优化,数据优化不是严格意义上的数据预处理,数据预处理是数据优化的强效工具之一。 这些data-centric 数据处理准则为工程师在AI零碎性能优化上提供了一些切实可行且无效的优化门路,在开发新模型来解决问题前,不如花更多的精力去优化数据以及数据定义。 ——雍雍 MobTech袤博科技高级数据挖掘工程师 以下为文章原文: 1.The future of data-centric AI talk seriesBackgroundAndrew Ng is a machine-learning pioneer, founder and CEO of Landing AI, and a former team leader at Google Brain. Recently he gave a presentation to the Future of Data-Centric AI virtual conference, where he discussed some practical tips for responsible data-centric AI development. This presentation dives into tips for data-centric AI applicable to unstructured data and is summarized below. If you would like to watch Andrew’s presentation, we’ve included it here as well, and you can find the entire event on our Youtube channel.(具体视频内容请见文尾链接) ...

April 22, 2022 · 13 min · jiezi

关于ai开发:作业帮云原生降本增效实践之路

简介:目前,作业帮曾经和阿里云有一个对于 AEP 的 tair 计划的联合,在新的一年心愿咱们有更大规模的落地。文章里讲得比拟多的是对于降本做的一些技术改良,其实在降本增效这外面还有很大一块工作量是经营,老本经营咱们也通过自动化实现了平台化,将来咱们将会进一步向 BI 化、AI 化去演进。 本文整顿自作业帮基础架构负责人董晓聪在云原生实战峰会上的分享,解说作业帮降本增效实际的路线上遇到的问题及教训,次要分为三个方面。一是作业帮的业务和现状,以及为什么要做降本增效。第二,如何和阿里云一起解决在降本过程中遇到的一系列挑战,最初是对将来技术趋势的瞻望。 背景作者 | 董晓聪 作业帮成立于 2015 年,是一家以科技伎俩助力普惠教育的公司,公司次要的业务分为两大板块。第一,作业帮 APP 是一款典型的流量互联网产品,二是作业帮直播课,是一款典型的产业互联网产品,涵盖教育主播链条,如教研、教学、教务、辅导等。 我是 2019 年十月份退出作业帮的,过后我看到作业帮的技术现状演绎为两点。一是规模化,另外是复杂化。 规模化:作业帮线上有数千个应用服务,这么多应用服务对应数万个服务实例,这么多的服务实例跑在数十万的计算外围之上;复杂化:作业帮整体的技术栈是比拟多元的。其中占比最高的技术栈是 Golang 和 PHP,还有大量模块是 C++、Python、Java 等进行编写的,作业帮守业之初就在云上,充沛享受了云计算的红利,起初因为一系列起因创立了多元的架构,性能疾速迭代也是咱们一贯的谋求。那为什么要进行降本增效呢?这个事之前也始终在做,只不过明天须要做得更好,其中有几点起因: 第一点,随着互联网红利的消退,企业心愿每一分钱失去最大的收益,实现老本效益最大化。第二点,尽管咱们始终在强调降本增效,但必定还是有不必要的收入存在,这些节约是应该被节俭的。第三点,作为技术人员的幻想,还是想写出更优质、更高性能的代码。 在降本增效的过程当中要留神一点,降本不能降质,降低成本时稳定性、效率、平安不能打折扣。咱们看一下老本模型。 各种各样的个性和性能利用在计算机上其实是一个一个的代码模块,这些代码其实还是须要各种各样的资源来运作,有计算、存储、网络等等,那么咱们看一下这个模型里降本增效怎么来做。 首先公司必定心愿本人的用户越来越多,应用越来越沉闷。其次,在利用侧降本增效做的事件就是要晋升单位算力承载量,艰深来讲就是 QPS。但咱们面临的一个挑战就是作业帮技术栈太多元了,咱们如何整体晋升?再看资源侧,存储、网络这些资源要么是刚需,要么就是很难管制老本。资源侧降本的重点还是计算资源,而对于计算资源咱们须要晋升单位成本的算力。 咱们面临的挑战是什么呢?就是如何抉择更优的机型以及在抉择完机型之后,如何让业务更加疾速、无感、平滑的过渡过去。在利用和计算资源的两头还有一块微小的晋升空间,就是两者之间的匹配和部署的问题。在部署侧咱们也面临一些艰难和挑战。 第一,咱们在线业务集群的负载并不高。对于高吞吐的业务个别作为外围业务,这些业务要留肯定的闲暇。对于低负载的业务要有碎片化和长尾化,把线上负载率拉低了。一方面是在线业务负载并不高,另外一方面是大数据离线计算要贴地进行,造成空间不均,还有工夫上的不均,互联网业务有显著的波峰波谷。在线教育更加显著,波峰波谷会差两个数量级,咱们始终在为波峰进行买单。 如何做到降本增效下面列举了相干的问题和挑战,作业帮是如何来做的呢?咱们抉择和阿里云一起,抉择开源的力量再联合肯定的自研进行相干问题的解决。在利用层面,咱们晋升了支流技术栈的运行性能,对于应用最多的检索服务进行架构的重构,以此来晋升性能和运维效率。 在部署侧,通过 GPU 调度、ECS,在离线混部解决空间和工夫的不均。在资源 K8s 技术实现利用通明无感,这样替换机型变得更加快捷。 上面基于利用、部署简略来聊。 利用这一层对支流技术栈进行优化。第一,咱们是从新编译,咱们以 FastCGI 运行,对非线程平安进行编译,还有服务注册发现,摒弃之前传统基于名字服务,为了进一步晋升性能和成功率,咱们还做了 LocalDNS,应用更新的内核 4.10+,和阿里云内核团队进行相应的调优、优化解决一系列问题,解决 IPVS 过多的性能和稳定性问题。 最初得益于 Terway 网络以及网络做的长久化,能够对性能有更显著的晋升。实现之后裸框架能够有几倍的晋升,能够带来 43% 左右的收益。检索服务作为底层服务,对其性能要求比拟高,传统架构个别是计算存储耦合在一起的,随着底下文件数量越来越多,单机无奈包容,要进行切片。每个切片要高牢靠、高性能,由此造成二维矩阵,这种状况下存在诸多的问题,比如说像数据更新周期长、整体运维效率并不高,还有零碎的瓶颈迟迟得不到解决。 要解决上述问题要做计算和存储的拆散,咱们引入 Fluid 做一个要害的纽带。Fluid 是一款基于 K8s 的数据编排零碎,用于解决云原生过程中遇到的拜访数据过程简单、拜访数据慢等一系列问题,JindoRuntime 用于实现缓存的减速,当咱们应用 Fliud 和 JindoRuntime 实现整个检索系统的重构之后,取得的收益也比拟显著。 ...

April 6, 2022 · 1 min · jiezi

关于ai开发:AI开发平台系列1AI开发平台家族概览

【编者按:AI技术蓬勃发展,已逐步浸透进国民经济的各行各业。但企业在AI技术的利用仍面临数据、算法、技术等方面的挑战,需业余AI开发与计算工具帮忙企业升高AI利用门槛,减速翻新。在此趋势下,AI开发平台纷纷涌现。白海科技将通过系列文章,梳理典型AI开发平台,并对其技术与性能进行比照剖析,为宽广企业与行业搭档揭开AI开发平台的神秘面纱】 1. AI开发平台背景AI技术日益浸透进各行各业近年来,随着大数据、云计算等技术的长足进展,机器学习、计算机视觉、语音辨认、常识图谱等人工智能技术飞速发展,逐步逾越迷信与利用的“鸿沟”,日益浸透进国民经济的各行各业。除互联网等数字化原生企业作为AI技术利用的先行者外,批发、制造业等传统企业和政府机构也在踊跃拥抱人工智能这一颠覆性技术,以部分业务为试点进行摸索。 图1 人工智能技术在我国各行业的利用现状AI减速商业化仍需平台工具的助力尽管人工智能技术后劲微小,对企业的翻新和倒退具备颠覆性意义,但其在具体实际落地中仍面临来自数据、算法和算力层面的重重挑战。 数据方面:数据是算法开发与训练的养料,影响算法训练的成果与品质。数据层面的外围挑战是海量数据的治理与摸索,一方面半结构化和非结构化数据的激增,加剧数据接入、数据标准化和数据价值开掘的挑战;另一方面,理论业务和生产中的数据噪声较多,也极大晋升了数据管理和摸索的难度。此外,数据标注繁冗也是重要的挑战,海量数据标注通常消耗大量的工夫和精力。 算法方面:在算法开发与训练方面,随着算法模型日益宏大和简单,最外围的挑战是训练效率和计算性能。其次,AI开发、训练技术和工具门槛高,在AI业余人员广泛短缺状况下,企业对AI技术的摸索与利用阻力较高;此外,算法开发与生产波及多角色协同,目前不足无效的合作工具与平台,沟通不畅极大地影响效率。 算力方面:一方面算力老本居高不下,企业算法开发训练老本极高,传统企业累赘算力老本具备较大压力;另一方面,企业目前普遍存在算力资源利用效率低的问题,需要与算力供应的无效匹配和算力资源的高效调度均亟待优化。 面临以上挑战,企业亟需集数据接入、数据摸索、模型开发、算力资源调度治理等于一身的AI开发与生产根底工具,以帮忙其低成本、高效率地利用AI技术,减速产品和业务的翻新。AI开发平台产品亦由此应运而生。 2. AI开发平台分类与概述白海科技从产品逻辑和状态的角度对AI开发平台进行初步分类,与大家探讨。咱们将AI开发平台分为两大类——集成式机器学习平台和AI根底软件平台。 图2 次要AI开发平台类型 2.1 集成式机器学习平台 *集成式机器学习平台以算法开发全流程为导向,集成数据筹备、模型开发、模型训练与部署等环节的相应工具或子产品集,在同一平台环境中满足企业算法开发与生产的全生命周期需要。集成式AI开发平台致力于提供一站式“大而全”的服务,且冀望同时满足数据科学家/算法工程师的业余需要和不足算法开发根底的数据分析师和业务人员的要求,对企业客户和理论用户来说,通常会存在产品过于厚重简单的挑战。 云厂商是集成式机器学习平台的外围玩家之一,依靠本身云服务技术和资源,帮忙客户在云上疾速搭建机器学习模型。国内AWS,国内阿里云、百度、华为等均已推出机器学习平台产品。 AWS Sagemaker:亚马逊云科技于2017年11月推出了 Amazon SageMaker 机器学习平台服务,是寰球集成式机器学习平台的先行者。Sagemaker产品的广度和深度均处于行业标杆位置,广度方面不断完善AI开发各环节的工具,实现MLOps;深度方面,各环节工具绝对更加精细化,且仍在一直打磨与欠缺其易用性。 Azure ML:微软早在2015年即推出ML Studio(经典版)——繁难的拖拽式无代码开发环境。随着市场和技术的倒退,微软不断完善机器学习平台相干性能,打造Azure Machine Learning (Azure ML),为数据科学家和算法工程师提供机器学习全生命周期服务。目前Azure ML已成为MLOps标杆平台之一。 阿里云PAI:起初服务于阿里团体外部,2018年正式商业化,次要提供PAI-Studio可视化建模平台、PAI-DSW云原生交互式建模平台、PAI-DLC云原生AI根底平台、PAI-EAS云原生弹性推理服务平台四大子产品。PAI重点聚焦在模型的开发、训练和部署环节。基于阿里云的计算性能优化是其外围劣势,PAI可为AI开发与生产提供大规模训练和推理的算力,反对阿里巴巴容器服务(ACK)集群级别的资源隔离。 百度BML:2020年,百度智能云正式公布飞桨AI开发平台企业版BML4.0,简称BML。BML基于PaddlePaddle平台和组件进行封装,次要为企业提供低门槛算法开发解决方案——一站式人工智能建模与推理预测服务。开源平台中积攒的丰盛的算法库和面向业余AI开发人员的工具是其外围劣势,同时,百度BML反对宽泛对接百度云内外部数据源。 华为云ModelArts:2018年,华为推出ModelArts 1.0。ModelArts与Sagemaker类似,致力于提供欠缺的端到端机器学习服务。ModelArts与华为软硬件生态(Asend芯片、CANN算子、MoXing、MindSpore框架等)深度协同,极大晋升计算性能;同时在反对云-端-边疾速部署方面,也具备劣势。 (* 本文提及的平台与产品不具备任何排名和评估性质) 2.2 AI根底软件平台AI根底软件平台以用户交互和应用需要为导向,可依据用户在AI开发和生产中的理论须要,配置相应功能模块。相比集成式AI开发平台,AI根底软件平台工具对数据科学家和算法工程师而言更加轻量、易上手。 从产品类型来看,AI根底软件平台更加丰盛多样,各产品有差异化的性能和技术侧重点。典型的产品包含Databricks数据与AI平台、基于Kubernetes的机器学习开源工具集Kubeflow、以及以IDE为外围的Google Colab和JupyterLab等。值得一提的是开源工具平台Kubeflow,2017年12月该开源社区成立,历时两年,2020年3月Kubeflow1.0版本正式公布。Kubeflow的根底是Kubernetes,利用云原生技术的劣势,让算法开发人员疾速、便捷地部署和应用AI开发生产相干技术和软件。Kubeflow严格来说并非为一个对立的平台,而是一群涣散工具组件的汇合,各组件可独自应用也可协同配合应用。 白海科技也属于AI根底软件平台领域,致力于提供新一代AI根底软件平台,推出Baihai IDP(Intelligent Development Platform),为企业、数据科学家和算法工程师提供易用的集成开发环境、高性能的计算引擎和高效的数据管理平台。 3. AI开发平台的外围价值尽管两类平台在产品状态和侧重点方面具备差别,但均为数据科学家在数据管理、模型开发、计算与训练等算法开发外围环节提供了丰盛工具选项,帮忙其晋升开发效率,升高企业AI利用老本。 数据管理:算法开发与训练中,数据起源通常极为扩散,数据存储具备多样性。通过AI开发平台,可便捷对接各类数据源,对数据集的接入、增删进行对立治理,简化数据科学家/算法工程师在数据接入与治理环节中的工作。 建模筹备:数据品质是影响模型成果的要害,数据科学家和算法工程师通常需耗费大量工夫与精力在数据摸索、数据预处理和数据标注等筹备工作环节。AI开发平台通过提供可视化的数据摸索工具、数据荡涤和数据加强等预处理工具和数据标注辅助工具,最大化晋升算法开发人员的效率,使其更加专一在模型开发。 模型开发:模型开发方面,AI开发平台的外围价值是提供高易用性的集成开发环境。在这一方面,集成式机器学习平台和AI根底软件平台的性能侧重点具备显著差别。集成式机器学习平台通常同时提供交互式建模和利落拽的可视化建模两种开发工具,以满足业余数据科学家/算法工程师和低门槛业务人员/数据分析师的差异化需要,其中交互式开发环境以集成开源JupyterLab、Jupyter Notebook为主。AI根底软件平台则更侧重于服务数据科学家和算法工程师,为其提供反对多语言、环境治理、代码辅助、业余包库治理等性能的更便捷易用的交互式开发环境,帮忙其晋升效率。 计算与训练:模型训练须要耗费大规模算力资源和大量计算等待时间。AI开发平台通过提供分布式训练架构晋升训练效率、升高开发人员等待时间,通过弹性计算资源的治理,无效晋升算力资源利用率,节约算力老本。此外,白海IDP(Intelligent Development Platform)差异化地提供断点续跑和主动休眠性能,实现工作计算中间状态的保留与复原,确保曾经耗费的资源不被节约,并大幅节约计算与训练工夫。此外,局部集成式机器学习平台如AWS Sagemaker、百度BML开始提供模型评估工具,帮忙开发人员疾速辨认模型抉择和训练中的问题,助力模型迭代优化。 模型部署与运维:企业进行模型开发的最终目标是将其部署于业务利用中,实现商业价值。但模型的部署也面临重重挑战,如需反对不同的框架、异构硬件设施(CPU/GPU/NPU/FPGA等)等。AI开发平台,尤其是提供端到端服务的集成式机器学习平台,会帮忙企业进行模型全生命周期的治理,买通开发训练和生产环境,实现模型的疾速高效部署。 图3 次要AI开发平台性能比照* (* 依据各产品官网明确公开信息整顿,如有问题请及时分割咱们) 【预报:下一期,咱们将对局部云厂商集成式机器学习平台进行性能和技术的比照剖析,敬请期待】 白海科技:https://www.baihai.co

January 14, 2022 · 1 min · jiezi

关于ai开发:OGeek-Day北京站多场景智能助手专场12月11日邀您共享

OGeek Day北京站「多场景智能助手」,将于2021年12月11日14:00在北京The Future Hall将来场隆重揭幕,这也是继南京站「云生态构建」之后,OGeek Day系列技术沙龙的第二场。 本场沙龙由OPPO数智工程事业部、小布匠心学堂、小布助手联结主办。盛邀OPPO小布助手首席架构师万玉龙、爱数智慧创始人兼CEO张晴晴、OPPO语音合成负责人宋阳、有道人工智能团队技术总监孙艳庆、美团平台算法研究员杨帆等泛滥业内专家到场分享,与您独特摸索多场景下AI助手的演进和利用教训。 干货十足,多畛域AI技术落地实际 时至今日,在AI技术的参加下,金融业、教育业、生存服务等不同产业的产业模式产生了天翻地覆的变动,每个人与AI的分割也变得更加亲密,AI浸透在人们工作、生存的方方面面。 智能助手以后次要聚焦在哪些场景落地?OPPO在其智能助手小布助手的智能交互上,又进行了哪些方向的摸索与翻新实际?本场沙龙邀请5位AI专家到场分享,就AI助手在挪动设施、教育、生存服务电商平台等不同行业的利用案例进行解读,探讨AI助手背地的语音技术、大数据、人机交互等前沿技术发展趋势。心愿您无论位于哪个细分畛域赛道,都能有所播种。 扫描下方二维码一键报名 对于OGeek Day OGeek Day是由OPPO数智工程事业部主办的行业技术沙龙品牌,旨在为技术爱好者搭建一个技术交换和分享的开放平台。沙龙次要围绕万物互融的趋势方向,聚焦于智能终端生态提供平安高效的数据、算力、算法、云服务方面的前沿技术,包含但不限于云基础设施、数据平台、平安隐衷、机器学习、举荐搜索算法、对话式智能助手等。过来,团队曾经在全国多个城市发展了多种主题的沙龙流动,取得了现场观众的高度评价,也让技术爱好者从更多维度加深了对智能终端行业及其相干反对技术的了解。 OGeek Day北京站则是OPPO数智工程事业部面向AI畛域的技术爱好者重磅推出的技术沙龙,旨在为人工智能行业在智能终端及其他利用场景的倒退搭建技术交换和分享的开放平台,独特探讨业内多场景AI助手及语音、数据等技术的演进方向与将来趋势。在引领国内AI技术倒退浪潮的同时,为AI技术的落地提供更为多元化的场景撑持。

December 7, 2021 · 1 min · jiezi

关于ai开发:解读业界5种主流的深度网络模型

摘要:介绍目前业界次要的模型优化的办法,而后对模型量化进行重点论述,介绍量化的基本原理,办法分类,将来倒退,以及对前沿论文进行解读。本文分享自华为云社区《模型量化综述及利用》,作者:Alan_wen。 前言随着深度学习的一直倒退,神经网络广泛应用于不同的畛域,获得远超以往的性能,然而深度网络模型的参数也越来越大,重大制约着深度网络在业界的利用,因而本文行将介绍目前业界次要的模型优化的办法,而后对模型量化进行重点论述,介绍量化的基本原理,办法分类,将来倒退,以及对前沿论文进行解读。 1.模型优化的办法1.1设计高效的网络结构设计紧凑的网络结构能够实现模型的优化,比方提出的MobileNet系列网络,其中简洁的Depth-Wise Convolution和Point-Wise Convolution。然而目前手工设计的神经网络已逐步被AutoML和网络结构搜寻取代,通过网络结构搜寻能够失去高精度而构造又紧凑的网络。 1.2模型剪枝应用手工设计的网络结构个别能够取得较高的精度,然而微小的网络参数很难间接利用到工业界的产品中,个别会对模型进行剪枝,模型剪枝分为结构化剪枝和非结构化剪枝,非结构化剪枝个别很难实现底层减速,而模型剪枝也逐步被网络结构搜寻取代。 1.3常识蒸馏除了剪枝能够将一个大模型放大为小模型外,常识蒸馏同样能够实现该性能。常识蒸馏将原先大模型作为Teacher模型,而设计的小模型Student模型,通过soft-target疏导Student模型训练,实现Teacher模型的常识迁徙。 1.4稠密稠密次要是通过对网络权重或者特色进行稠密,能够通过正则化训练的形式实现稠密化,而网络权重稠密后个别通过与模型剪枝的形式联合,对不沉闷的权重进行裁剪,以压缩网络结构。 1.5模型量化模型量化是目前工业界最无效的模型优化办法之一,如FP32-->INT8能够实现4倍的参数压缩,在压缩内存的同时能够实现更疾速的计算,进行极其的二值量化实践上甚至能够实现32倍的压缩,然而适度的压缩会导致模型的精度疾速降落。下文将对模型量化进行具体介绍。 2.模型量化综述2.1什么是量化?在信息系统中量化是将信号的间断取值近似为无限多个离散值的过程 (能够认为是一种信息压缩的办法) 。 在计算机系统中,量化是指定点与浮点等数据之间建设一种数据映射关系,使得以较小的精度损失代价取得了较好的收益,可简略了解为用“低比特”数字示意FP32等数值。 在开始介绍量化的原理之前先问三个问题: 为什么量化有用? 因为卷积神经网络对噪声不敏感,量化相当于对原输出退出了大量的噪声。为什么用量化? • 模型太大,比方VGG19大于500MB的参数量,存储压力大;• 每个层的weights范畴根本都是确定的,且稳定不大,适宜量化压缩;• 此外,量化既缩小访存又可缩小计算量 为什么不间接训练低精度的模型? 因为训练须要反向流传和梯度降落,int8为离散数值,举个例子就是咱们的学习率个别都是零点几零点几的,int8不匹配无奈反向流传更新。2.2量化原理量化是指将信号的间断取值近似为无限多个离散值的过程。可了解成一种信息压缩的办法。在计算机系统上思考这个概念,个别用“低比特”来示意。 模型量化为定点与浮点等数据之间建设一种数据映射关系,使得以较小的精度损失代价取得了较好的收益。具体如下: R 示意实在的浮点值,Q 示意量化后的定点值,Z 示意 0 浮点值对应的量化定点值,S 则为定点量化后可示意的最小刻度。 由浮点到定点的量化公式如下: 浮点到定点的量化: 2.3量化根底概率平均与非平均量化: 如上图所示,量化可分为平均量化和非平均量化,上图左图的平均量化即为公式(1)形式的线性量化。而网络权重或者特色散布不肯定是平均的,简略的线性量化可能导致原网络显著的信息失落,因而还能够进行非平均量化,如应用Kmeans对网络权重进行聚类,失去不同的聚类核心,而后将聚类核心作为同一簇权重的量化代表。 对称与非对称量化: 在现实的状况下,如上图左图所示,特色散布比拟平均,因而能够对模型进行对称量化,即以0点值左右两边绝对值相等进行量化。然而很多状况下模型权重或特色是散布不平均的,不肯定在0点值两边对称,如上图右图所示,间接进行对称量化会某一侧的特色被重大压缩,大量失落网络信息,因而可为了尽可能以的放弃原网络示意的信息,可进行非对称量化。 动静与动态量化:有不同的校准办法来确定上图[, ]的剪切范畴。量化办法的另一个重要辨别因素是裁剪范畴的确定。能够动态地计算权重的范畴,因为在大多数状况下,参数在推断期间是固定的。然而,每个输出样本的激活映射是不同的。因而,有两种量化激活的办法:动静量化和动态量化。 在动静量化中,在运行时期间为每个激活映射动静计算此范畴。这种办法须要实时计算信号统计信息(最小值、最大值、百分位数等),这些统计信息可能具备十分高的开销。然而,动静量化通常能取得更高的精度,因为信号范畴是准确计算每个输出的。 另一种量化办法是动态量化,其中剪裁范畴是事后计算的,在推理期间是动态的。这种办法在推理过程不会减少任何计算开销,但与动静量化相比,它通常会导致更低的精度。预计算的一种风行办法是运行一系列校准输出以计算典型激活范畴。 总的来说,动静量化动静计算每个激活的裁切范畴,通常可实现最高精度。然而,动静计算裁切的范畴十分耗费计算,因而,业界最常应用动态量化,其中所有输出的裁切范畴都是固定的。 不同量化粒度: 在计算机视觉工作中,每层的激活输出有许多不同的卷积滤波器卷积,如图上所示。这些卷积滤波器的每个都能够具备不同的值范畴。因而,量化办法的一个区别是如何为权重计算裁切范畴[,]的粒度。可将它们分类为层量化,分组量化和通道量化: a)层量化:在这种办法中,裁切范畴是通过思考层卷积滤波器中的所有权重来确定的,如上图的第三列所示。通过该层中整个参数的统计信息(如最小、最大和百分位数等),而后对整层卷积滤波器应用雷同的裁切范畴。尽管这种办法实现非常简单,但它通常会导致次优解,因为每个卷积滤波器的范畴可能会有很大的变动,会使某些参数范畴绝对较窄的卷积核失去量化分辨率。b)分组量化:能够将层内的多个不同通道分组,以计算裁切范畴(激活或卷积核)。这对于单个卷积/激活中参数散布变化很大的状况可能会有所帮忙,分组量化能够在量化分辨率和计算开销之间建设一个很好的斗争。c)通道量化:裁切范畴的一个通常抉择是为每个卷积滤波器应用固定值,独立于其余通道,如上图最初一列所示。也就是说,每个通道都被调配了一个专用的缩放因子。这确保了更好的量化分辨率,并通常导致更高的精度,通道量化是目前用于量化卷积核的规范办法。 随机量化在推理过程中,量化计划通常是确定性的。然而,这并不是惟一的可能性,一些工作曾经摸索了随机量化用于量化感知训练以及升高精度训练。高层次的直觉是,与确定性量化相比,随机量化可能容许NN进行更多摸索。人们通常认为小的权重更新可能不会导致任何权重变动,因为四舍五入操作可能总是返回雷同的权重。然而,启用随机舍入可能会为NN提供转变的机会,从而更新其参数。上面公式为在Int量化和二值量化的随机舍入形式。 微调的办法 量化后,通常须要调整神经网络(NN)中的参数。这能够通过retraining模型来执行,该过程称为量化感知训练(QAT),也能够在不retraining的状况下实现,该过程通常称为训练后量化(PTQ)。上图显示了这两种办法之间的示意性比拟(左图为量化感知训练,右图为训练后量化),并在下文进一步探讨。 量化感知训练(伪量化)给定一个训练好的模型,量化可能会对训练好的模型参数引入扰动,这可能会将模型偏离以浮点精度训练时收敛到的点。能够通过应用量化参数从新训练NN模型来解决这个问题,以便模型可能收敛到具备更好损失的点。一种风行的办法是应用量化感知训练(QAT),其中通常的正向和反向传递是在浮点中对量化模型执行的,但模型参数在每次梯度更新后都会量化。特地是,在以浮点精度执行权重更新后,执行此投影十分重要。应用浮点执行向后传递十分重要,因为在量化精度中累积梯度可能会导致零梯度或具备高误差的梯度,特地是在低精度中。 反向流传中的一个重要奥妙之处是如何解决不可微量化算子(公式1)。在没有任何近似的状况下,这个运算符的梯度简直在任何中央都是零,因为在公式中的舍入操作是分段立体运算符。解决这个问题的一种风行办法是通过所谓的直通预计器(STE)近似该运算符的梯度。STE基本上疏忽了舍入操作,并应用标识函数近似它,如下图所示。 只管STE是粗略近似的,但QAT已被证实无效。然而,QAT的次要毛病是从新训练NN模型的计算成本。这种从新训练可能须要执行几百个epoch来复原精度,特地是对于低位精度量化。如果量化模型要在很长一段时间内部署,如果效率和准确性特地重要,那么在从新训练方面的投资可能是值得的。然而,状况并不总是这样,因为有些模型的寿命绝对较短。 训练后量化代替低廉的QAT办法是训练后量化(PTQ)执行量化和权重调整,不进行任何微调。因而,PTQ的开销非常低,而且往往能够忽略不计。与QAT不同,QAT须要足够数量的训练数据进行再培训,PTQ还有一个额定的劣势,即它能够利用于数据无限或未标记的状况。然而,与QAT相比,这通常是以更低的精度为代价的,尤其是对于低精度量化。 Zero Shot(即data-free)如目前所探讨的,为了在量化后实现最小的精度降落,咱们须要拜访整个或者局部训练数据。首先,咱们须要晓得激活的范畴,以便咱们能够剪裁值并确定适当的缩放因子(文献中通常称为校准)。其次,量化模型通常须要微调来调整模型参数并复原精度降落。然而,在许多状况下,在量化过程中,不可能拜访原始训练数据。这是因为训练数据集要么太大,无奈散发,要么是独有的(例如Google的JFT-300M),要么是因为平安或隐衷问题(例如医疗数据)而敏感的。目前提出了几种不同的办法来解决这一挑战,咱们称之为Zero Shot量化(ZSQ)。依据高通的一个工作的启发[2],能够形容两个不同级别的Zero Shot量化: 第1级:无数据,无微调(ZSQ+PTQ)。第2级:无数据,但须要微调(ZSQ +QAT).级别1容许更快、更容易的量化,而无需任何微调。微调通常很耗时,而且通常须要额定的超参数搜寻。级别1可通过权重平衡或者BatchNorm的统计参数实现校对,无需微调。然而,级别2通常会导致更高的精度,因为微调有助于量化模型复原精度降落,特地是在超低位精度设置中。级别2微调的输出数据次要通过GAN生成,可依据量化前的模型,应用GAN生成近似的散布数据,而无需再拜访内部数据。 Zero Shot(又名date-free)量化执行整个量化,而不拜访训练/验证数据。这对于心愿放慢客户工作负载部署而无需拜访其数据集的提供商来说尤其重要。此外,这对于平安或隐衷问题可能限度对训练数据的拜访的状况十分重要。 2.4量化进阶概念FP32,伪量化和定点量化部署量化NN模型有两种常见的办法,模仿量化(又名伪量化)和仅整数量化(又名定点量化)。在模仿量化中,量化的模型参数存储在低精度中,但操作(如矩阵乘法和卷积)是用浮点算法执行的。因而,量化参数须要在浮点运算之前反量化,如图上图(两头)所示。因而,人们不能齐全受害于疾速高效的低精度逻辑与模仿量化。然而,在纯整数量化中,所有操作都应用低精度整数算术执行,如上图(右)所示。这容许整个推理能够用无效的整数算法执行,而不须要对任何参数或激活进行任何浮点反量化。 一般来说,应用浮点算法在全精度下执行推理可能有助于最终量化精度,但这是以无奈从低精度逻辑中受害为代价的。低精度逻辑在提早、功耗和区域效率方面与全精度逻辑相比具备多重劣势。与模仿/假量化相比,仅整数量化和二进量化更可取。这是因为仅整数应用较低精度的逻辑进行算术,而模仿量化应用浮点逻辑来执行运算。然而,这并不意味着伪量化永远没有用途。事实上,伪量化办法对带宽限度而不是计算限度的问题是无益的,例如在举荐零碎中,对于这些工作,瓶颈是内存占用空间和从内存加载参数的老本。因而,在这些状况下,执行伪量化是能够承受的。 混合精度量化很容易看到,随着咱们应用较低精度量化,硬件性能失去了进步。然而,将模型平均量化到超低精度可能会导致精度显著降落。能够通过混合精度量化来解决这个问题。在这种办法中,每个层都以不同的位精度量化,如上所示。这种办法的一个挑战是,抉择此位设置的搜寻空间在层数上是指数级的。目前提出了不同的办法来解决这一微小的搜寻空间。a)为每个层抉择这种混合精度实质上是一个搜寻问题,并且曾经提出了许多不同的搜寻办法。 b)另一类混合精度办法应用周期函数正则化来训练混合精度模型,通过主动辨别不同层及其在精度方面的变动重要性,同时学习它们各自的位宽。 c)HAWQ 引入了一种基于模型二阶灵敏度的主动办法来查找混合精度设置。混合精度量化已被证实是一种无效的硬件高效办法,用于不同神经网络模型的低精度量化。在这种办法中,NN的层被分组为对量化敏感/不敏感,每个层应用高/低位。因而,人们能够最大限度地缩小精度降落,并依然受害于缩小内存占用和低精度量化更快的减速。 硬件感知量化量化的指标之一是进步推理时延。然而,并非所有硬件在量化某个层/操作后都提供雷同的速度。事实上,量化的益处取决于硬件,片上内存、带宽和缓存层次结构等许多因素都会影响量化速度。 思考这一事实对于通过硬件感知量化实现最佳效益十分重要。因而须要模仿硬件提早,在硬件中部署量化操作时,需测量不同量化位精度的每层的理论部署提早。 蒸馏辅助量化量化中一个乏味的工作路线是联合模型蒸馏以进步量化精度。模型蒸馏是一种应用精度较高的大模型作为老师,帮忙训练紧凑型学生模型的办法。在学生模型的训练过程中,模型蒸馏提出利用老师产生的软概率,而不是仅仅应用ground-true类标签,该软概率可能蕴含更多输出信息。也就是说,总体损失函数包含学生损失和蒸馏损失。 极致量化二值化是最极其的量化办法,其中量化值被限度为1位示意,从而将内存需要大幅升高32×。除了内存劣势外,二进制(1位)和三元(2位)操作通常能够应用位算术无效计算,并能够在更高精度(如FP32和INT8)上实现显著的减速。然而,简略的二值化办法将导致精度显著降落。因而,有大量工作提出了不同的解决方案来解决这一问题,次要分为以下三类: a. 量化误差最小化(应用多个二值矩阵组合模仿近似,或者应用更宽网络)b. 改良损失函数(例如退出蒸馏损失)c. 改良训练方法(如反向流传时用更润滑的函数取代sign) ...

October 11, 2021 · 2 min · jiezi

关于ai开发:大力出奇迹揭秘昇腾CANN的AI超能力

摘要:CANN(Compute Architecture for Neural Networks)异构计算架构,是以晋升用户开发效率和开释昇腾AI处理器极致算力为指标,专门面向AI场景的异构计算架构。1、引言从2016年,战败世界顶级棋手,强势将了人类一军的AlphaGo, 到2020年,会写小说、编剧本、敲代码,科科满分样样全能的GPT-3, 再到2021年,最靠近人类中文理解能力,泛化力超群的盘古大模型… 近几年的人工智能畛域,像开了挂一样,一直刷新人类认知,颠覆人类设想… 和人类把握某项技能一样,训练一个足够聪慧的AI算法模型往往须要成千上万的数据量。以GPT-3为例,其参数量曾经达到1750亿、样本大小有45TB之多,单次训练工夫以月为单位,算力诉求已是挡在AI赛道上的绊脚石! 同时,随着人工智能利用日益成熟,文本、图片、音频、视频等非结构化数据的解决需要呈指数级增长,数据处理过程从通用计算逐渐向异构计算适度。 华为推出的昇腾AI根底软硬件平台。其中,昇腾AI处理器+ 异构计算架构CANN,带着与生俱来的超强算力和异构计算能力,软硬件强强联合,正逐步成为促成AI产业疾速落地的催化剂。 CANN(Compute Architecture for Neural Networks)异构计算架构,是以晋升用户开发效率和开释昇腾AI处理器极致算力为指标,专门面向AI场景的异构计算架构。对上反对支流前端框架,向下对用户屏蔽系列化芯片的硬件差别,以全场景、低门槛、高性能的劣势,满足用户全方位的人工智能诉求。 2、支流前端框架兼容,疾速搞定算法移植目前人工智能畛域内,AI算法模型搭建方面的技能曾经是炉火纯青,市面上用于AI模型搭建的深度学习框架,除了华为开源的MindSpore,还有Google的TensorFlow、Facebook的PyTorch、Caffe等。 CANN通过Plugin适配层,能轻松承接基于不同框架开发的AI模型,将不同框架定义的模型转换成标准化的Ascend IR(Intermediate Representation)表白的图格局,屏蔽框架差别。 这样,开发者只须要非常少的改变,即可疾速搞定算法移植,体验昇腾AI处理器的磅礴算力,大大减少了切换平台的代价,就说它香不香? 3、简略易用的开发接口,让小白也能玩转AI依附人工智能实现智能化转型,简直成为了各行各业的必修课,CANN秉承极简开发的理念,提供了一套简略易用的AscendCL(Ascend Computing Language)编程接口,为开发者屏蔽底层处理器的差别,你只须要把握一套API,就能够全面利用于昇腾全系列AI处理器。 同时,可能满足开发者可能在将来CANN版本升级的状况下,仍然能够做到后向全面兼容,且运行效率不打折扣! 简略的AI利用开发接口 人工智能寄托着人类对将来美好生活的神往,当咱们每天面对“这是什么垃圾,要扔在哪个桶里”的灵魂拷问的时候,一个AI垃圾分类桶利用,就能把你从生灵涂炭中解救出来。 AscendCL提供了一套用于开发深度神经网络推理利用的C语言API库,兼具运行时资源管理、模型加载与执行、图像预处理等能力,可能让开发者轻松解锁图片分类、指标辨认等各类AI利用。并且能够做到即反对通过支流开源框架调用AscendCL库,也反对间接调用CANN凋谢的AscendCL编程接口。 上面教你5步搞定AI垃圾分类利用: 运行治理资源申请:用于初始化零碎外部资源。加载模型文件并构建输入内存:将开源模型转换成CANN反对的om模型,并加载到内存;获取模型根本信息,构建模型输入内存,为后续模型推理做筹备。数据预处理:对读入的图像数据进行预处理,而后构建模型的输出数据。模型推理:依据构建好的模型输出数据进行模型推理。解析推理后果:依据模型输入,解析模型的推理后果。灵便的算子开发接口 当你的AI模型中有CANN尚未反对的算子,或者想要批改已有算子以晋升计算性能时,能够利用CANN凋谢的自定义算子开发接口,得心应手地开发你想要的算子。 面向不同程度的AI开发者,CANN提供高效(TBE-DSL)和业余(TBE-TIK)两种算子开发模式,可灵便满足不同档次程度的开发者。 其中,TBE-DSL的入门难度较低,它能够主动实现数据的切分和调度,开发者只需关注算子自身的计算逻辑,无需理解硬件细节,即可开发出高性能算子。 TBE-TIK绝对难一些,不像TBE-DSL只是在高层形象编程,而是提供指令级编程和调优能力,开发者须要手工实现类指令级调用,这样能充沛开掘硬件能力,实现更加高效和简单的算子。 便捷的IR构图接口 另外,开发者还能够通过标准化的Ascend IR(Intermediate Representation)接口,抛开深度学习框架自身,间接调用CANN中的算子库,构建出能够在昇腾AI处理器上执行的高性能模型。 4、1200+高性能算子库,筑起磅礴算力源泉基于深度学习框架构建的模型,其实是由一个个计算单元组成,咱们称这些计算单元为算子(Operator,简称Op),它对应着特定的计算逻辑。 算子在硬件上的减速计算形成了减速神经网络的根底和外围。目前CANN提供了1200+种深度优化的、硬件亲和的算子,正是如此丰盛的高性能算子,筑起了磅礴的算力源泉,让你的神经网络「刹时」减速。 NN(Neural Network)算子库:CANN笼罩了包含TensorFlow、Pytorch、MindSpore、ONNX框架在内的,罕用深度学习算法的计算类型,在CANN所有的算子中占有最大比重,用户只须要关注算法细节的实现,大部分状况下不须要本人开发和调试算子。BLAS(Basic Linear Algebra Subprograms)算子库:BLAS为根底线性代数程序集,是进行向量和矩阵等根本线性代数操作的数值库,CANN反对通用的矩阵乘和根底的Max、Min、Sum、乘加等运算。DVPP(Digital Video Pre-Processor)算子库:提供高性能的视频编解码、图片编解码、图像裁剪缩放等预处理能力。AIPP(AI Pre-Processing)算子库:次要实现扭转图像尺寸、色域转换(转换图像格式)、减均值/乘系数(图像归一化),并与模型推理过程交融,以满足推理输出要求。HCCL(Huawei Collective Communication Library)算子库:次要提供单机多卡以及多机多卡间的Broadcast,allreduce,reducescatter,allgather等汇合通信性能,在分布式训练中提供高效的数据传输能力。5、高性能图编译器,赋予神经网络超能力世间最苦是期待,等红绿灯,等寒暑假,等外卖,等那个对的人… 人工智能畛域也是一样,随着神经网络构造的疾速演进,单纯利用手工优化来解决AI模型性能问题越来越容易呈现瓶颈,CANN的图编译器像是一个魔法师,将具备较高形象度的计算图,依据昇腾AI处理器的硬件构造特点,进行编译优化,从而可能高效执行。 魔法师到底有哪些「神操作」呢? 主动算子交融:基于算子、子图、SCOPE等多维度进行主动交融,无效缩小计算节点,大幅缩小计算工夫。 Buffer交融:针对神经网络计算大数据吞吐,memory bound问题,通过缩小数据搬运次数、晋升昇腾AI处理器内缓存利用率,晋升计算效率。 咱们对Buffer交融前后做一比对: 交融前,算子1在昇腾AI处理器上计算完后,将数据从昇腾AI处理器内的缓存buffer搬运到内部存储,算子2从内部存储获取数据作为输出,搬入缓存buffer进行计算。交融后,算子1计算实现后,数据保留在缓存buffer,算子2从缓存buffer间接获取数据进行算子2的计算,无效缩小数据搬运次数,晋升了计算性能。 全图下沉:昇腾AI处理器,集成了丰盛的计算设施资源,比方AICore/AICPU/DVPP/AIPP等,正是得益于昇腾AI处理器上丰盛的土壤,使得CANN不仅能够将计算局部下沉到昇腾AI处理器减速,还能够将控制流、DVPP、通信局部一并下沉执行。尤其在训练场景,这种把逻辑简单计算图的全副闭环在AI处理器内执行的能力,能无效缩小和Host CPU的交互工夫,晋升计算性能。 异构调度能力:当计算图中含有多类型的计算工作时,CANN充分利用昇腾AI处理器丰盛的异构计算资源,在满足图中依赖关系的前提下,将计算任务分配给不同的计算资源,实现并行计算,晋升各计算单元的资源利用率,最终晋升计算工作的整体效率。 6、主动混合精度,无效达到收益均衡顾名思义,主动混合精度是一种主动将半精度和单精度混合应用,从而减速模型执行的技术,在大规模模型训练场景下有着不可或缺的位置。 单精度(Float Precision32,FP32)是计算机罕用的一种数据类型,半精度(Float Precision16,FP16)则是一种绝对较新的浮点类型,在计算机中应用 2 字节(16 位)存储,实用于精度要求不高的场景。 ...

September 22, 2021 · 1 min · jiezi

关于ai开发:AI云原生把卫星遥感虐的死去活来

摘要:遥感影像,作为地球自拍照,可能从更广大的视角,为人们提供更多维度的辅助信息,来帮忙人类感知自然资源、农林水利、交通灾祸等多畛域信息。本文分享自华为云社区《AI+云原生,把卫星遥感虐的死去活来》,作者:tsjsdbd。 AI牛啊,云原生牛啊,所以1+1>2?遥感影像,作为地球自拍照,可能从更广大的视角,为人们提供更多维度的辅助信息,来帮忙人类感知自然资源、农林水利、交通灾祸等多畛域信息。 AI技术,能够在很多畛域超过人类,要害是它是主动的,省时又省力。可显著晋升遥感影像解译的工作效率,对各类地物元素进行自动化的检测,例如建筑物,河道,路线,农作物等。能为智慧城市倒退&治理提供决策依据。 云原生技术,近年来堪称是一片炽热。易构建,可反复,无依赖等劣势,无论从哪个角度看都与AI算法天生一对。所以大家也能够看到,各畛域的AI场景,大都是将AI推理算法运行在Docker容器外面的。 AI+云原生这么6,那么强强联手后,地物分类、指标提取、变化检测等高性能AI解译不就手到擒来?咱们也是这么认为的,所以基于AI+Kubernetes云原生,构建了反对遥感影像AI解决的空天地平台。 不过现实是好的,过程却跟西天取经个别,九九八十一难,最终修成正果。 业务场景介绍遇到问题的业务场景叫影像交融(Pansharpen),也就是对地球自拍照进行“多镜头单干美颜”性能。(能够了解成:手机的多个摄像头,同时拍照,合并成一张高清黑白大图)。 所以业务简略总结就是:读取2张图片,生成1张新的图片。该性能咱们放在一个容器外面执行,每张交融后的后果图片大概5GB。 问题的要害是,一个批次业务量须要解决的是3000多张卫星影像,所以每批工作只须要同时运行实现3000多个容器就OK啦。云原生YYDS! 业务架构图示为了帮忙了解,这里合成应用云原生架构实现该业务场景的逻辑图如下: 在云上,原始数据,以及后果数据,肯定是要寄存在对象存储桶外面的。因为这个数据量,只有对象存储的价格是适合的。(对象存储,1毛钱/GB。文件存储则须要3毛钱/GB) 因为容器之间是相互独立无影响的,每个容器只须要解决本人的那幅影像就行。例如1号容器解决 1.tif影像;2号容器解决2.tif影像;一次类推。 所以管理程序,只须要投递对应数量的容器(3000+),并监控每个容器是否胜利执行结束就行(此处为简化阐明,理论业务场景是一个pipeline解决流程)。那么,需要曾经依照云原生现实的状态合成,咱们开始起(tang)飞(keng)吧~ 注:以下形容的问题,是通过梳理后出现的,理论问题呈现时是相互交叉盘根错节的。 K8s死掉了当作业投递后,不多久零碎就显示作业纷纷失败。查看日志报调用K8s接口失败,再一看,K8s的Master都曾经挂了。。。 K8s-Master处理过程,总结版: 发现Master挂是因为CPU爆了所以扩容Master节点(此次反复N次);性能优化:扩容集群节点数量;性能优化:容器分批投放;性能优化:查问容器执行进度,少用ListPod接口;具体版: 看监控Master节点的CPU曾经爆掉了,所以最简略粗犷的想法就是给Master扩容呀,嘎嘎的扩。于是从4U8G 3 一路扩容一路测试一路失败,扩到了32U64G 3。能够发现CPU还是爆满。看来简略的扩容是行不通了。 3000多个容器,投给K8s后,大量的容器都处于Pending状态(集群整体资源不够,所以容器都在排队呢)。而正在Pending的Pod,K8s的Scheduler会不停的轮训,去判断是否有资源能够给它安顿上。所以这也会给Scheduler微小的CPU压力。扩容集群节点数量,能够缩小排队的Pod数量。 另外,既然排队的太多,不如就把容器分批投递给K8s吧。于是开始分批次投递工作,想着别一次把K8s压垮了。每次投递数量,缩小到1千,而后到500,再到100。 同时,查问Pod进度的时候,防止应用ListPod接口,改为间接查问具体的Pod信息。因为List接口,在K8s外部的解决会列出所有Pod信息,解决压力也很大。 这一套组合拳下来,Master节点终于不挂了。不过,一头问题按上来了,另一头问题就冒出来了。 容器跑一半,挂了尽管Master不挂了,然而当投递1~2批次作业后,容器又纷纷失败。 容器挂掉的处理过程,总结版: 发现容器挂掉是被eviction驱赶了;Eviction驱赶,发现起因是节点报Disk Pressure(存储容量满了);于是扩容节点存储容量;缩短驱赶容器(被动kill容器)前的容忍工夫;具体版: (注:以下问题是定位梳理后,按程序出现给大家。但其实出问题的时候,程序没有这么敌对) 容器执行失败,首先想到的是先看看容器外面脚本执行的日志呗:后果报日志找不到~ 于是查问Pod信息,从event事件中发现有些容器是被Eviction驱赶干掉了。同时也能够看到,驱赶的起因是 DiskPressure(即节点的存储满了)。 当Disk Pressure产生后,节点被打上了驱赶标签,随后启动被动驱赶容器的逻辑: 因为节点进入Eviction驱赶状态,节点下面的容器,如果在5分钟后,还没有运行完,就被Kubelet被动杀死了。(因为K8s想通过干掉容器来腾出更多资源,从而尽快退出Eviction状态)。 这里咱们假如每个容器的失常运行工夫为1~2个小时,那么不应该一产生驱动就马上杀死容器(因为曾经执行到一半的容器,杀掉从新执行是有老本节约的)。咱们冀望应该尽量期待所有容器都运行完结才入手。所以这个 pod-eviction-timeout 容忍工夫,应该设置为24小时(大于每个容器的均匀执行工夫)。 Disk Pressure的间接起因就是本地盘容量不够了。所以得进行节点存储扩容,有2个抉择:1)应用云存储EVS(给节点挂载云存储)。 2)扩容本地盘(节点自带本地存储的VM)。 因为云存储(EVS)的带宽切实太低了,350MB/s。一个节点咱们能同时跑30多个容器,带宽齐全满足不了。最终抉择应用 i3类型的VM。这种VM自带本地存储。并且将8块NVMe盘,组成Raid0,带宽还能x8。 对象存储写入失败容器执行持续纷纷失败。 容器往对象存储写入失败处理过程,总结版: 不间接写入,而是先写到本地,而后cp过来。将一般对象桶,改为反对文件语义的并行文件桶。具体版: 查看日志发现,脚本在生成新的影像时,往存储中写入时出错: 咱们整集群是500核的规模,同时运行的容器数量大略在250个(每个2u2g)。这么多的容器同时往1个对象存储桶外面并发追加写入。这个应该是导致该IO问题的起因。 对象存储协定s3fs,自身并不适宜大文件的追加写入。因为它对文件的操作都是整体的,即便你往一个文件追加写入1字节,也会导致整个文件从新写一遍。 最终这里改为:先往本地生成指标影像文件,而后脚本的最初,再拷贝到对象存储上。相当于减少一个长期存储直达一下。 在长期直达存储抉择中,2种本地存储都试过: 1)块存储带宽太低,350MB/s影响整体作业速度。2)能够抉择带本地存储的VM,多块本地存储组成Raid阵列,带宽速度都杠杠滴。 同时,华为云在对象存储协定上也有一个扩大,使其反对追加写入这种的POSIX语义,称为并行文件桶。后续将一般的对象桶,都改为了文件语义桶。以此来撑持大规模的并发追加写入文件的操作。 K8s计算节点挂了So,持续跑工作。然而这容器作业,执行又纷纷失败鸟~ 计算节点挂掉,定位梳理后,总结版: 计算节点挂掉,是因为好久没上报K8s心跳了。没上报心跳,是因为kubelet(K8s节点的agent)过得不太好(死掉了)。是因为Kubelet的资源被容器抢光了(因为不想容器常常oom kill,并未设置limit限度)为了爱护kubelet,所有容器全都设置好limit。具体版,间接从各类奇葩乱象等问题动手: 容器启动失败,报超时谬误。 而后,什么PVC共享存储挂载失败: 或者,又有些容器无奈失常完结(删不掉)。 查问节点Kubelet日志,能够看到充斥了各种超时谬误: 啊,这么多的底层容器超时,一开始感觉的Docker的Daemon过程挂了,通过重启Docker服务来试图修复问题。 前面持续定位发现,K8s集群显示,好多计算节点Unavailable了(节点都死掉啦)。 持续剖析节点不可用(Unavailable),能够发现是Kubelet良久没有给Master上报心跳了,所以Master认为节点挂了。阐明不仅仅是Docker的Daemon受影响,节点的Kubelet也有受影响。 那什么状况会导致Kubelet,Docker这些主机过程都不失常呢?这个就要提到Kubernetes在调度容器时,所设计的Request和Limit这2个概念了。 Request是K8s用来调度容器到闲暇计算节点上的。而Limit则会传递给Docker用于限度容器资源下限(触发下限容易被oom killer 杀掉)。后期咱们为了避免作业被杀死,仅为容器设置了Request,没有设置Limit。也就是每个容器理论能够超出申请的资源量,去抢占额定的主机资源。大量容器并发时,主机资源会受影响。 ...

August 18, 2021 · 1 min · jiezi

关于ai开发:AI开发者十问10分钟了解AI开发的基本过程

摘要:从AI开发模型、框架、工具,到晋升开发效率的学习方法,为AI开发者逐个解答。本文分享自华为云社区《10分钟理解AI开发的根本过程》,作者:简略保持。 1、AI开发到底在开发什么?一个硬件开发者的工作成绩是一个布满集成电路的服务器,开机就能够运行某种软件。一个挪动端开发者的工作成绩能够是一个手机APP,包含了大量二进制数据,可被麒麟芯片间接运行。一个AI开发者的工作成绩则是一个模型,模型实质上是一个函数:f(图片) = "How are you"f(猫图片) = "Cat"无论这个函数有如许简单,有多少个变量或者参数,AI开发都是试图找出这个函数的表达式。 2、AI模型(函数)是怎么开发进去的?AI模型实质是一个函数,想要找到这个函数精确的的表达式,仅凭逻辑是无奈推导进去的,而是训练进去的,咱们喂给机器目前已有的数据,机器就会从这些数据里去找出一个最能满足(专业术语称为拟合)这些数据的函数,当有新的数据须要预测的时候,机器就能够通过这个函数去预测出这个新数据对应的后果是什么。 对于一个具备某种智能能力而言,个别具备以下因素:数据+算法+模型,开发的过程,就是一直地用数据和算法使得模型越来越迫近真实情况,留神是迫近而非推导,这个过程称为训练。 3、AI模型的训练过程是怎么样的?咱们来用一个可能辨别猫和狗图片的模型来帮忙了解训练的过程:“数据”就是咱们须要筹备大量标注过是“猫”还是“狗”的图片;“算法”指的是构建模型时咱们打算用浅层的网络还是深层的,如果是深层的话咱们要用多少层,每层有多少神经元、性能是什么等等,也就是网络架构的设计,相当于咱们确定了咱们的预测函数应该大抵构造是什么样的。 咱们用Y=f(W,X,b)来示意这一函数,X是已有的用来训练的数据(猫和狗的图片),Y是已有的图片数据的标签(该图片是猫还是狗), W和b是什么意思呢?一开始,咱们的确不晓得,这两个参数是须要机器学习后本人找进去的,找的过程也就是训练的过程。 “模型”指的咱们把数据带入到算法中进行训练,机器就会去一直地学习,当机器找到最优W和b后,咱们就说这个模型是训练胜利了,这个时候咱们的函数Y=f(W,X,b)就齐全确定下来了 而后咱们就能够在已有的数据集外给模型一张新的猫或狗的图片,那模型就能通过函数Y=f(W,X,b)算进去这张图的标签到底是猫还是狗,这就是推理。 简略总结下:不论是最简略的线性回归模型、还是较简单的领有一亿个参数的深度神经网络模型,实质都是寻找一个可能良好拟合目前已有数据的函数Y=f(W,X,b),并且咱们心愿这个函数在新的未知数据上也可能体现良好。 4、AI为什么要强调大量数据?因为只有数据量足够大,模型才可能学习到足够多且精确的辨别猫和狗的特色,能力在辨别猫狗这个工作上,体现出足够高的准确性;当然数据量不大的状况下,咱们也能够训练模型,不过在新数据集上预测进去的后果往往就会差很多。 假如辨认猫的模型要十分精确,就须要各种光照条件、各种背景、各种花色的猫的照片,不仅要有波斯猫,还要有加菲猫,直到模型蕴含了咱们能想到的各种猫的特色,一个人脸识别模型,大概须要几百万张照片,能力达到可用,驰名的Imagenet数据集,大概蕴含了1400万张图片,极大中央便了开发者。 5、在AI开发过程中一个好的开发工具能够帮忙开发者做什么?假如没有一个现成的开发平台,首先你须要学会罕用的AI开发语言python,python是整个过程并不耗精力的环节,其次你须要学习传统机器学习和深度学习相干算法,这块算是破费最多精力和工夫的环节,而后尽可能去了解和推导算法,而后用python代码去实现算法再训练模型,代码能力很重要,不然你的模型都建不起来。 而后你发现了一个开发框架,华为MindSpore或者谷歌Tensorflow,你会发现并不需要那么高的数学门槛,不是说要深刻理解算法能力更好训练出好模型,模型损失函数优化办法MindSpore/Tensorflow都内置好了,而且只须要简略的调用就好了,如果说MindSpore/Tensorflow是能够把一个模型代码量大大减少的框架,那么Keras就是让模型代码量能够少到惊人的框架,例如下面的猫狗分类器,15行代码就能够搞定,几十行代码就把一个领有着卷积层、池化层和全连贯层的较高级优化办法的深度学习网络架构写进去。 一个开发框架就像安卓框架为手机APP开发者提供的很多根底性能,如果没有这个框架,一个简略的给好友发送图片的性能,你须要间接和操作系统的各个底层功能模块打交道了。 6、AI开发,有了开发框架就够了吗?当然不是,一个开发框架,只是帮开发者做了一些开发者没必要实现的局部,或者实现起来代价太大的局部,一个残缺的AI开发过程,从筹备数据、数据预处理、数据标注、抉择算法、训练、调参、部署,这和一个一般的APP开发的过程差不多。如同生产一辆汽车,一个自动化、高科技的总装车间是必不可少的,但冲压、涂装车间也制约着汽车的生产效率,那么制约AI开发效率最头痛的是什么,请看下一个问题。AI开发过程中最大的艰难是什么? 7、AI开发过程中最大的艰难是什么?要筹备大量的数据,后面曾经提过,更可怕的是数据标注,据统计,数据处理和标注环节大概占整个开发周期的70%。所谓标注,就是给数据打标签,通知机器一张图片到底是猫还是狗,标注是一件在AI开发者看来技术含量非常低的工作,曾经属于劳动密集型产业,业界有大量的第三方公司,专门从事数据标注工作。以主动驾驶为例,车头上的摄像机在实时拍摄车前的所有画面,主动驾驶标注的过程要标注前车、障碍物、行人、信号灯、指示牌、批示线等等,这个过程如果齐全依赖人工标注,主动驾驶将永远难以商用。要重复迭代训练,训练并不是欲速不达,要重复批改各种参数,使得模型的准确度逐渐晋升,这个过程,目前须要丰盛的教训,如果没有短缺的算力,训练一次,期待三天,而后调参,再期待三天,如果要迭代20次,这个过程是很耗费人的意志。所以,即便不思考老本因素,算力也是制约AI遍及最大的问题。8、怎么解决AI开发者的问题?正如开发一个office软件,不可能麻烦到用记事本敲代码,你须要一个像visual studio一样的集成开发环境,须要一个像Git一样的代码管理工具,同理,开发一个AI模型,你也须要一个集成开发环境,而且须要一个版本管理工具。 提供给开发者代码编辑环境、语法查看、编译器等性能,一个AI的开发平台,同样也要能帮开发者标注数据、创立模型训练作业、部署模型等性能,有了开发平台,开发平台要帮忙开发者把所有苦活累活都干完,让开发者聚焦在最外围的代码和算法上。 当然,要提供给开发者易获取、性能强、价格低的算力,进步模型训练的迭代速度。 9、有没有更快地晋升AI开发速度的方法?当然有。从根本上晋升开发效率,开掘到最实质,只有两个方法:重用和自动化,否则只能一行一行代码干起。 开发一个APP,能够从最根本的代码写起,能够复用开发者共享的开发包、函数等,华为云开源镜像站有大量的java开发包,就是这个意思,也能够复用一个残缺的APP,批改下界面配色,就变成了本人的APP,这是复用。要保障APP的品质,能够手工测试,也能够用自动化测试工具。如果这些都不想做,能够也能够用一个现成的工具,用可视化的办法生成一个APP,当然APP的格调只能从工具已有的模板中选取。开发者始终在试图用各种方法,升高开发的工作量。 AI开发也是一样的。能够找现成的数据集、找现成的标注好的数据集,现成的算法和模型,用主动部署工具将模型部署到端边云。当然,也可用主动学习性能,只有提供原始数据,由零碎帮忙开发者实现模型构建、算法抉择和主动训练,开发者能够间接看到后果。最简略的方法,就是寻找一个曾经训练好的模型,在软件中间接调用。 基于此,一个好的AI开发平台,要从各个维度去晋升开发效率,这些性能往往都是很多小细节,算力强、训练快,只是实现了必须的最根本的性能。 10、华为将提供什么开发工具给开发者?ModelArts,一个AI开发平台 ,用于AI模型开发HiLens,一个视觉AI利用开发平台,用于AI利用开发,利用外面的模型由ModelArts提供。以上两款产品以云服务的形式在华为云EI提供服务。 Atlas 200 developer kit(开发板)是ModelArts 的线下开发套件。 点击关注,第一工夫理解华为云陈腐技术~

July 27, 2021 · 1 min · jiezi

关于ai开发:面试官说一下Jena推理

摘要:本文介绍了Jena的推理子系统,并构建了一个简略的RDF图。基于该RDF图,咱们搭建了一个Jena推理引擎,并进行自动化推理。本文分享自华为云社区《常识推理之基于jena的常识推理(三)》,作者:北纬30度 。 Jena推理子系统旨在容许将一系列推理引擎或推理器插入Jena。这些引擎用于派生从一些根本RDF以及任何可选的本体信息中取得RDF断言,以及与推理器关联的公理和规定。此机制的主要用途是反对应用RDFS和OWL等语言,这些语言容许从实例数据和类形容中推断出额定的事实。该机制的设计非常通用,它包含一个通用规定引擎,可用于许多RDF解决或转换工作。 应用程序通常通过应用ModelFactory将数据集与某个推理器关联以创立新模型来拜访推理机。对创立的模型的查问不仅将返回原始数据中存在的语句,而且还将返回应用推理器实现的规定或其余推理机制从数据中导出的其余语句。 可用的推理 Jena散布中包含许多预约义的推理: 传递推理器:提供存储和遍历类和属性情的反对。这仅实现了rdfs:subPropertyOf和rdfs:subClassOf的传递和反身属性。 RDFS规定推理器:实现RDFS要求的可配置子集。 OWL、OWL Mini、OWL微推理器:一组有用但不残缺的OWL/Full language的OWL/Lite子集的实现。 通用规定推理器:基于规定的推理器,反对用户定义的规定。反对正向链接、表反向链接和混合执行策略。 构建RDF图jena的 org.apache.jena.rdf.model包用于创立和操作RDF图的类和接口。其中ModelFactory提供了创立规范RDF Model的办法。 上面的例子展现了如何构建一个RDF图 Model onlineModel = ModelFactory.createDefaultModel(); String prefix = "http://www.example.org/mingjiao#"; Resource mingjiao = onlineModel.createResource(prefix + "mingjiao"); Resource zhangwuji = onlineModel.createResource(prefix + "zhangwuji"); Resource weifuwang = onlineModel.createResource(prefix + "weifuwang"); Resource baimeiyingwang = onlineModel.createResource(prefix + "baimeiyingwang"); Property zhizhang = onlineModel.createProperty(prefix + "zhizhang"); Property leader = onlineModel.createProperty(prefix + "leader"); Property shuyu = onlineModel.createProperty(prefix + "shuyu"); onlineModel.add(zhangwuji, zhizhang, mingjiao); onlineModel.add(zhangwuji, shuyu, mingjiao); onlineModel.add(weifuwang, leader, zhangwuji); PrintUtil.registerPrefix("", prefix); StmtIterator i = onlineModel.listStatements(null, null, (RDFNode)null); System.out.println("推理前"); while (i.hasNext()) { System.out.println('-' + PrintUtil.print(i.nextStatement())); }output:-(:baimeiyingwang :leader :zhangwuji)-(:zhangwuji :zhizhang :mingjiao)-(:weifuwang :leader :zhangwuji)首先,通过ModelFactory创立规范RDF Model。 ...

July 26, 2021 · 1 min · jiezi

关于ai开发:AI运动阿里体育端智能最佳实践

简介: 过来一年,阿里体育技术团队在端智能方面一直摸索,特地在静止衰弱场景下实现了实际落地和业务赋能,这就是AI静止我的项目。AI静止我的项目践行静止数字化的理念,为静止人口的上翻提供了重要撑持,迈出了阿里体育端智能静止畛域的第一步,为用户带来了更加乏味的新鲜玩法。上线以来,我的项目受到了宽泛关注。 作者 | 其声起源 | 阿里技术公众号 一 背景过来一年,阿里体育技术团队在端智能方面一直摸索,特地地,在静止衰弱场景下实现了实际落地和业务赋能,这就是AI静止我的项目。AI静止我的项目践行静止数字化的理念,为静止人口的上翻提供了重要撑持,迈出了阿里体育端智能静止畛域的第一步,为用户带来了更加乏味的新鲜玩法。上线以来,我的项目受到了宽泛关注。 2020年因新冠疫情,传统的线下静止受到限制,居家静止逐步成为新趋势。基于阿里巴巴弱小的技术积淀,阿里体育团队适应线上静止的迫切需要,开发出基于AI辨认的智能静止,为用户提供了简便、好玩的新型居家静止形式。只需一部手机和3-4平米的场地,就能够发展AI静止。静止时,用户关上乐能源APP,将手机固定在场地一侧,适当设置手机角度,依据利用的主动语音提醒调整身材与手机间隔,直到人体齐全位于辨认框内,即可开始静止。 二 端智能实际通过⼀年的摸索和欠缺,从验证DEMO到囊括多种动作、反对能力迁徙的AI静止智能平台,阿⾥体育建设了系统化的客户端静止智能体系。端智能静止体系基于阿里深度推理引擎在手机端进行推理,辨认⼈体姿势和动作,剖析人体姿势、静止轨迹、动作角度等,给出实时反馈并进行动作纠正,通过能力的模块化组合,现已反对十多种静止动作和数十种玩法,实现了静止与AI的有机整合,让用户的线上静止变得上手简略而又充斥趣味。 三 技术支持端智能静止的根本技术思路是使用MNN推理引擎进行推理和姿势辨认。即 实时检测图像及视频中的人体轮廓,定位人体14个要害骨骼点,包含头、肩、脚等重点关节部位。基于这些关键点信息,连点成线、连线造成动作,能够剖析人体姿势、动作角度和静止轨迹。通过动作姿势匹配,检测用户静止动作,实现动作的计时与计数。同时,实时检测剖析动作标准化水平,给出状态反馈,纠正用户动作,实现互动,进步交互体验。传统静止形式下,用户在静止时能够及时失去现场辅助人员(教练员、考官或亲友)的实时揭示和帮忙。端智能静止形式下,用户在做动作时只能与手机利用进行交互。交互的能力和辨认程度会受到推理模型能力、静止场景复杂度、静止匹配辨认算法等一系列因素的影响。在端智能静止能力的摸索和落地过程中,会遇到一些新的问题或者难题,如人机方位匹配、骨骼点辨认丢点、点误辨认、二维失真、用户挪动、手机晃动、场景噪声等。这些问题不一一赘述,仅选取几个有代表性的问题进行分享: 动作的有效性判断及要害算法设计,以进步动作匹配精度,这是智能静止能力的根底。在保障辨认成果的前提下,采取有效措施,升高挪动终端的资源耗费,以晋升用户体验,次要体现是费电和发热。采取更加灵便的形式,加重挪动端测试的人力和工夫耗费,进步开发和测试效率,为团队的交付保障提供无力撑持。晋升辨认精度 智能静止带给用户的最直观、最根底的感触就是动作计数准确性。如果动作辨认计数不准,用户应用APP的积极性就会打消,参与性就不高。为此,咱们要首先解决计数准不准的问题。 智能静止计数的基本原理是,把一个残缺动作分解成若干个小步骤,而后对每个步骤触发辨认和判断,全副步骤遍历后,对整个动作进行有效性确认。如果无效,计数加1;反之就反复上述过程。简言之,智能静止辨认与计数是一个状态机。将一个静止动作离散化,形象成N个状态机,{s(0),s(1),s(2),...,s(n-1)},状态机依照肯定的程序顺次进行检测,全副检测到象征用户实现了该动作,对计数加1;若某个状态未被检测到,触发对应反馈信息,重置状态机进入新的循环。每一个状态机对应着肯定的触发条件,通过实时骨骼点坐标与状态的循环匹配性检测,获取一个动作匹配后果。 不难看出,动作辨认精度与动作匹配算法严密相干,算法匹配成果好,辨认精度就越高。为进步动作辨认精度,能够选取影响匹配算法的因素作为切入点和突破口,骨骼点、状态机、匹配等。相应的解决办法为: 进步骨骼点稳定性,确保状态匹配后果精度。抉择骨骼点稳固、易辨认、具备代表性的动作作为状态机。帧率要可能笼罩一个动作的所有状态机。上面将举例进行阐明。 骨骼点辨认准确度对动作匹配有着重要影响。如下图所示:测试对象左手臂骨骼点辨认呈现谬误。如果径直进行匹配,显然会失去谬误的后果。针对这种状况,该当利用好用户的历史动作信息,在动作匹配算法上对动作匹配进行纠正。 还有一种状况,用户曾经实现某种动作的全副动作,如下图中的开合跳,因为采样帧率低,无奈捕捉和辨认全副开合跳静止过程中的全副姿势,造成某个状态匹配不胜利,最终导致开合跳动作匹配谬误。对于低帧率问题,可从模型和输出源两个方面着手。对于模型来说,在不影响动作辨认精度状况下,采纳精简模型,缩小推理耗时。对不同的终端设备,采纳不同分辨率的输出源,升高原始数据处理操作耗时。 升高性能耗费 受物理条件影响,手机端算力和存储空间无限。此外,深度学习推理自身蕴含大量的运算,资源耗费大。如果间接在端上进行深度学习推理,再思考上手机端本身业务(如摄像头、录制视频、动画成果)的资源耗费,CPU和内存开销就显著增长,直观体现是手机发热显著,电量耗费很快。智能静止在端智能上落地时,要特地思考升高性能耗费,这对于晋升用户体验来说至关重要。 升高整体性能耗费,要追根溯源,从升高单帧耗费处着手。单帧解决能够划分为三个阶段:别离是推理前、推理和推理后。 这三个阶段别离起着不同的作用。推理前阶段次要实现格局转换,将摄像头获取的流数据转换为推理须要的数据格式,如YUV格局、RGBA格局。推理阶段次要实现计算输入骨骼点坐标。对输出的帧数据,通过推理引擎,执行一系列算法,输入推理后果,如姿势辨认是将输出图片的RGBA数据转换成骨骼点坐标数据。推理后阶段次要实现展现,进行渲染操作和业务相干操作,如UI展现、动画成果展现。 相应地,可对上述三个阶段别离进行优化。其中,推理过程中的优化由阿里深度推理引擎MNN负责,这里不作探讨。对于推理前阶段的数据转换,应缩小不必要的两头转换环节,间接将摄像头流数据转换成为须要的格局。如推理应用RGBA裸数据,就间接将摄像头流数据转换为RGBA格局。对于推理后阶段,应依据承载的平台抉择适合的渲染计划,升高渲染耗费。对于iOS平台,可间接采纳Metal进行渲染提效。 进步测试效率 AI智能静止是阿里体育团队在体育数字化上的一次大胆尝试。在利用开发特地是测试环节中,投入相当的人力、设施及工夫,不断完善利用性能、优化利用性能、晋升用户体验。此外,AI静止辨认的成果测试受环境因素的影响较大,如光线、背景、间隔、人物在摄像头中的成像大小等。这就对测试形式提出了考验。 以传统测试计划为例:个别是真人、实地、实时动作,测试人员手动记录后果再预先剖析,如下图所示。 不难想象,AI智能静止所运行的手机有着不同的品牌、型号、零碎版本和性能参数,AI智能静止的用户可能处于不同的应用环境,若采纳传统的测试形式,对不同因素进行测试笼罩,对测试人员、测试工夫提出了很大的挑战,测试的一致性与精度也难以保障。具体起因如下: 人工成本较高:一次测试需多名同学配合,耗时耗力。测试环境较繁多:无奈应答线上简单多样的环境。测试后果量化难。无奈对模型的精度、算法的效率、动动匹配准确度、精度晋升度、性能耗费等量化评估。问题定位难。预先剖析排查,无奈复现定位线上客诉问题。传统的测试方法难以为继,为克服上述艰难,阿里体育技术团队开发了一套AI静止主动测试工具,专门用于解决AI智能我的项目测试难题,实现了线上问题的快捷定位与回归,并对模型算法精度实现量化评估。 主动测试工具的解决思路是:批量解析视频集,模仿实在场景,获取骨骼点数据,进行业务后果测试,主动生成测试报告。具体技术计划如下图所示: 采纳新的测试工具后,显著地升高了人工成本、进步了测试效率。具体测试成果如下: 须要留神的是,测试工具的成果与测试样本的数量相干,样本越丰盛,测试精度越好。 四 业务后果阿里体育智能静止现已反对数十种静止动作,开发出丰盛的AI训练课程,同时通过静止能力的模块化组合,反对将来一直拓展新的动作。 自AI智能静止诞生以来,乐能源APP陆续上线了直臂开合跳、俯卧撑等上肢动作,臀桥、深蹲等下肢动作以及跳绳、开合跳等全身动作等多种静止模式,使得用户能够不受工夫和场地限度,随时随地和敌人一起参加到AI静止,晋升了APP的用户吸引力和趣味性。此外,AI训练课程翻新引进明星资源,推动全年52周每周7天不间断的“明星陪练”课,以明星带动用户养成静止习惯、高兴静止、爱上静止。阿里体育团队也将一直地依据用户须要打造更多的静止玩法,丰盛产品性能,造成阿里体育端智能的独特业务品牌和翻新产品特色。 原文链接本文为阿里云原创内容,未经容许不得转载。

July 16, 2021 · 1 min · jiezi

关于ai开发:AI插件推荐

1)AI插件举荐2)VideoPlayer在Android上播放视频黑屏3)Renderer.GetPropertyBlock问题4)RectMask2D问题 这是第257篇UWA技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫10分钟,认真读完必有播种。 UWA 问答社区:answer.uwa4d.comUWA QQ群2:793972859(原群已满员) AIQ:咱们新我的项目有些AI,想用一些插件来实现,不知大佬们有没有什么AI插件举荐?据我所知有Behavior Designer ,Playmaker ,Bolt 这些,求科普几款性能和性能都不错的,谢谢。 A1:举荐 NodeCanvas。性能亮点:● 三个可齐全切换的图形模块供你抉择。● 具备所有预期业余性能的时尚且直观的可视化节点编辑器。(全副撤销/重做、放大/放大、迷你地图、多选、复制、复制/粘贴、JSON 导入/导出、群组和正文等)● 图形、GameObject和全局黑板变量,以创立可重复使用和以智能体为核心的参数行为。● 具备实例或动态属性和字段的数据绑定变量。● 应用UNET的网络同步变量(Network Sync Variable)。(因为现已弃用UNET,所以会将其替换为新的网络解决方案)● 预制件可笼罩的变量。● 主动转换不同的变量数据类型。● 反对所有变量类型开箱即用。● 跨所有数量的智能体的可重复使用行为图。● 所有三种图形模块之间的无缝子图形嵌套。(行为子树、子状态机、子对话树)● 残缺的子图变量参数化和贴图。● 模块化动作和条件工作设计。● 条件反馈行为树评估。● 有条件和基于栈的FSM过渡。● 丰富多彩和内容翔实的运行时可视化调试。● 节点/工作浏览器,用以搜寻、珍藏和浏览内置文档。● 首选类型配置器,以依据我的项目需要定制与类型相干的菜单。● 图形迷你地图,以轻松浏览图形。● 图形控制台,单击鼠标即可主动定位故障节点。● 图形浏览器,用以搜寻和查找图中的节点、工作和参数。● 图形重构器,以批量重构缺失的节点、工作和反射援用。● 实时运行时编辑,以更疾速地实现设计指标。● 通过优化的反射工作,以主动集成现有的代码 API。● 内置事件零碎,以在图形中沟通和传输数据。● 清晰且记录欠缺的 API,以扩大 NodeCanvas 框架并创立本人的动作、条件、节点,甚至全新的图形模块。● 对象和属性绘制器,以所有可能的形式自定义查看器。● 与大量第三方资源集成。● 与FlowCanvas flowScripts无缝集成。● 用户敌对,轻量级,无需设置。● 性能稳固,初始化后零调配,异步图加载。● 反对所有平台开箱即用。● 蕴含全副C#源代码。 具体链接如下:https://assetstore.unity.com/... Behaviac也不错,惋惜TX不怎么保护了:https://github.com/Tencent/be... 感激郑骁@UWA问答社区提供了答复 A2:搬运一位大佬的举荐:Baracuda。https://github.com/Unity-Tech...感激芭妮妮@UWA问答社区提供了答复 A3:搬运一个对于游戏AI框架抉择的帖子:《What A.I technique is most suited to my game, FSM, BT, GOAP》 附一个AI相干Blog:AI分享站http://www.aisharing.com/sitemap ...

July 7, 2021 · 1 min · jiezi

关于ai开发:AI框架中图层IR的分析

摘要:本文重点剖析一下AI框架对IR有什么非凡的需要、业界有什么样的计划以及MindSpore的一些思考。本文分享自华为云社区《MindSpore技术专栏 | AI框架中图层IR的剖析》,原文作者:元气满满的少女月 。 IR(Intermediate Representation即两头示意)是程序编译过程中,源代码与指标代码之间翻译的中介,IR的设计对编译器来说十分要害,好的IR要思考从源代码到指标代码编译的齐备性、编译优化的易用性和性能。而AI框架实质的作用又是什么呢?AI框架实质的作用在于把一个把用户的模型表白翻译到可执行的代码,而后进行高效执行(训练和推理),其中从用户的模型表白(例如深度神经网络)到最初可执行的代码就是个编译器的行为,这个编译器也有一个IR,它的设计对AI框架的齐备性/灵活性/易用性/性能都起到至关重要的作用。 本文重点剖析一下AI框架对IR有什么非凡的需要、业界有什么样的计划以及MindSpore的一些思考。首先带大家理解下通用的编译器IR的分类以及各自特点。 业界IR的介绍一、IR依据其组织构造[1],能够分为:Linear IR(线性IR)、Graphical IR(图IR)、Hybrid IR(混合IR),其中 Linear IR(线性IR):相似某些抽象机的伪代码,对应的算法通过迭代来遍历简略的线性操作序列 Hybrid IR(混合IR):联合了图IR和线性IR的因素。一种常见的混合IR应用底层的线性IR来示意无循环代码块,应用图IR来示意这些块之间的控制流 Graphical IR(图IR):将编译过程的常识/信息保留在图中,对应的算法通过对图中的对象(节点、边、列表和树)操作来形容 线性IR的一个例子是堆栈机代码(Stack-Machine Code),它是一种单地址代码,假设操作数存在一个栈中。大多数操作从栈取得操作数,并将其后果推入栈中。例如:表达式 b-a*3对应的堆栈机代码如下: push 3push amultiplypush asubstractLLVM IR是一个典型的混合IR,它蕴含了两个档次(CFG+BB): 顶层是控制流图(Control Flow Graph,简写为CFG),来示意基本块(Basic Block,简写为BB)间的控制流。CFG的每个节点(Node)为一个基本块,基本块b1和b2之间有一条边(Edge):b1->b2,如果控制流可能从基本块b1的最初一条指令流向基本块b2的第一条指令 底层是基本块,在基本块中,每条指令是以SSA(Static Single Assignment)模式出现,这些指令形成一个指令线性列表 Sea of Nodes IR(by Cliff Click)是一种典型的图IR[2],在这种IR中,简化了CFG图中BB+SSA指令的两层构造,去除了BB,剩下只蕴含指令的一层构造。它通过引入了非凡的REGION、IF、PROJECTION指令,将BB块中的全序指令放松为显式的数据依赖和管制依赖,并且对管制依赖和数据依赖采纳雷同的示意形式和解决形式,这样就简化了IR的剖析和变换。如下为一个简略的IR示例: 在这个示例中,方框为图的节点,示意SSA指令,箭头为图的边;实心箭头示意管制依赖;空心箭头示意数据依赖。从这个示例中能够看到此IR中显式的蕴含了use-def依赖,不须要进行额定的计算。 基于此IR中显式的use-def信息,能够不便的实现两类优化:Parse time优化(Pessimistic)全局优化(Optimistic) 在Parse的时候,因为还没有程序的全副信息,所以只可做部分的优化,如窥孔优化(例:常量折叠,Identity-function)。通过设计适合的类及继承体系,能够应用简略的算法实现peephole优化: 对于全局优化,比方Sparse Conditional Constant Propagation(SCCP),也能够很简略的实现;首先是基于图中显式的use-def计算出def-use chains,而后能够很容易的实现SCCPSea of Nodes IR提供了一种十分重要的思路:将依赖信息显式的示意在图IR中。FIRM IR中连续了这个思路 二、从罕用编程语言的角度来剖析IR,咱们又能够看到IR的模式分为了两个不同的营垒:一类是命令式编程语言的编译器IR,另外一类是函数编程语言的编译器IR命令式编程语言的编译器IR以SSA为根本的组成模式,这里就不在赘述了,上面重点介绍一下函数式编程语言的IR,在函数式编程语言的IR中,CPS或者ANF是其根本的组成模式1. Continuation-passing style(CPS)直译为:间断传递格调CPS 示意这样一种模式:一个函数 f 除了它本身的参数外,总是有一个额定的参数continuationcontinuation也是一个函数,当f实现了本人的返回值计算之后,不是返回,而是将此返回值作为continuation的参数,调用continuation。所以CPS模式的函数从模式上看它不会return,当它要return 的时候会将所有的参数传递给continuation,让continuation持续去执行。比方: def foo(x):return x+1转换为CPS模式,k就是一个continuation: def foo(x,k):k(x+1)直观上看,函数不“return”,而是“continue”CPS的长处是让如下的信息显式化:过程返回(调用一个continuation),两头值(具备显式的名称),求值程序,尾调用(采纳雷同的continuation调用一个过程)比方如下的一段python代码,求小于n的所有素数的积。 def prodprimes(n): if n == 1: return 1 if isprime(n): return n * prodprimes(n - 1)return prodprimes(n - 1)当采纳CPS模式示意时: ...

June 30, 2021 · 4 min · jiezi

关于ai开发:THORMindSpore-自研高阶优化器源码分析和实践应用

摘要:这篇文章跟大家分享下THOR的实际利用。THOR算法的局部内容以后曾经在MindSpore中开源本文分享自华为云社区《MindSpore 自研高阶优化器源码剖析和实际利用》,原文作者:HWCloudAI 。 这篇文章跟大家分享下THOR的实际利用。THOR算法的局部内容以后曾经在MindSpore中开源,源码地位: https://gitee.com/mindspore/mindspore/blob/master/mindspore/nn/optim/thor.py MindSpore中应用THOR训练网络非常简单,上面用四行代码先来带大家看一下怎么应用。 from mindspore.nn.optim import THOR #援用二阶优化器#创立网络net = Net() #调用优化器opt = THOR(net, lr, Tensor(damping), config.momentum, config.weight_decay, config.loss_scale, config.batch_size, split_indices=split_indices) #减少计算图晋升性能model = ConvertModelUtils().convert_to_thor_model(model=model, network=net, loss_fn=loss, optimizer=opt, loss_scale_manager=loss_scale, metrics={'acc'}, amp_level="O2", keep_batchnorm_fp32=False, frequency=config.frequency) #训练网络model.train(config.epoch_size, dataset, callbacks=cb, sink_size=dataset.get_dataset_size(), dataset_sink_mode=True)导入二阶优化器THOR所须要的包第一行代码惯例创立网络第二行代码定义咱们应用的优化器THOR第三行代码是为了减少计算图从而使THOR达到更优性能第四行代码训练网络咱们再具体开展介绍下。首先导入MindSpore所需的二阶优化器的包,位于 mindspore.nn.optim 而后创立你所需的网络;接着定义THOR优化器,传入网络信息和THOR所需的超参信息(如学习率,正则化项系数等); 再调用 convert_to_thor_model函数,该函数是通过减少计算图使THOR达到更优性能,什么意思呢,自身网络运行的时候是一张计算图,THOR中会应用过期的二阶信息,通过额定减少一张计算图,两张计算图别离执行更新二阶矩阵和不更新二阶矩阵的操作从而达到更优性能(PS. MindSpore反对动动态图,在这里为了更好的性能应用的是动态图模式,对这块内容比拟感兴趣的同学,能够点这个链接:https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/white_paper/MindSpore_white_paper.pdf); 最初,调用model.train就能够开始训练啦。简略介绍了下怎么应用,接下来咱们来看下它的源码。 源码剖析init 函数用于THOR的初始化,须要传入THOR所需的超参和网络结构,THOR反对GPU和Ascend,别离为class THOR_GPU(Optimizer)和 class THOR_Ascend(Optimizer),这两个类之间的次要差异是算子不同。上面咱们以 class THOR_Ascend(Optimizer)为例,来剖析一下。 class THOR_Ascend(Optimizer): def __init__(self, net, learning_rate, damping, momentum, weight_decay=0.0, loss_scale=1.0, batch_size=32, decay_filter=lambda x: x.name not in [], split_indices=None): params = filter(lambda x: x.requires_grad, net.get_parameters()) super(THOR_Ascend, self).__init__(learning_rate, params, weight_decay, loss_scale) if isinstance(momentum, float) and momentum < 0.0: raise ValueError("momentum should be at least 0.0, but got momentum {}".format(momentum)) self.momentum = Parameter(Tensor(momentum, mstype.float32), name="momentum") self.params = self.parameters self.moments = self.params.clone(prefix="moments", init='zeros') self.hyper_map = C.HyperMap() self.opt = P.ApplyMomentum() self.net = net self.matrix_A_cov = ParameterTuple(filter(lambda x: 'matrix_A' in x.name, net.get_parameters())) self.matrix_G_cov = ParameterTuple(filter(lambda x: 'matrix_G' in x.name, net.get_parameters())) ...MindSpore中所有优化器都继承了 class Optimizer,该基类中定义了一些根本函数(如获取学习率,梯度缩放等)。THOR初始化时将传进去的超参定义为类属性不便调用,并且定义了后续计算会应用到的算子。 ...

June 26, 2021 · 4 min · jiezi

关于ai开发:应对全场景AI框架部署挑战MindSpore四招让你躺平

摘要:所谓全场景AI,是指能够将深度学习技术疾速利用在云边端不同场景下的硬件设施上,包含云服务器、挪动终端以及IoT设施等等,高效运行并能无效协同。本文分享自华为云社区《AI框架的挑战与MindSpore的解决思路》,原文作者:HWCloudAI 。 全场景对立AI框架的挑战所谓全场景AI,是指能够将深度学习技术疾速利用在云边端不同场景下的硬件设施上,包含云服务器、挪动终端以及IoT设施等等,高效运行并能无效协同。对于框架而言,波及三大挑战:疾速部署、高效运行、端云协同。 疾速部署如何将训练好的模型疾速地部署到云服务器、挪动终端以及各种IoT设施上进行推理甚至增量训练? 云服务器上推理通常以Service的形式进行部署,训练好的模型间接通过近程接口调用(gRPC/REST)推送到云服务器上,用户调用云推理服务接口进行推理。对于挪动终端和IoT设施,因为硬件资源限度,云侧的模型和推理运行框架体积太大,无奈间接部署,因而模型的压缩和运行框架的轻量化成为挪动终端和IoT设施上部署的要害。 面向挪动终端和IoT设施轻量化的挑战,提供独立的轻量化的端侧AI框架是比拟好的解决方案,同时这样的轻量化框架可能还不止一种状态,比方相似于智能手机这些富终端和相似耳环这些瘦终端面临的挑战就不一样,富终端个别存储空间还是比拟富余的,有肯定的算力;瘦终端的条件则要刻薄的多,底噪要求管制在百K级别,这样你就不能放一个运行时进去,同时还要思考给AI开发者一个通用的解决方案。 有了轻量化的端侧框架以及好的模型压缩转换技术是否就能够实现疾速部署的目标?其实还有问题,因为如果咱们端侧的架构与云侧的架构是拆散的、实现是不统一的,如模型的IR不同、算子的定义不同、推理的API接口不同,那很可能导致云侧训练的模型无奈顺利的转换到端侧去执行,云侧的推理代码无奈在端偏重用。 个别框架的从云侧训练模型到端侧部署的流程如下: 这种形式目前存在一些问题: 第一个问题:两套模型定义很难保持一致,比方云侧和端侧的算子常常会呈现一方缺失的问题,导致模型转换失败。第二个问题:云和端都须要的性能会反复开发,并可能有不统一,比方为了晋升推理性能而进行的fusion优化须要端云两边都做一遍,数据处理的不统一导致精度问题等。第三个问题:云侧训练好的模型在端侧进行在线训练须要绝对简单的转换。对于拆散的端云框架的不统一问题,是否能够通过如ONNX这样的规范去解决?很难,起因在于,AI产业的疾速倒退,新的算子类型疾速涌现,规范实际上很难跟得上,所以解决的路径还是应该着落在AI框架上。 高效运行全场景的高效运行,合成下来就是高效的算子、高效的运行时以及高效的模型,实现异构硬件的最大算力,晋升AI算法的运行性能和能效比。 算子的性能,须要从算法和底层指令优化多个层面进行优化。比方卷积,Winograd算法相比于Im2Col+GEMM,在很多经典卷积神经网络上性能就有很好的性能晋升。 然而,并不是所有的场景下Winograd的算法都优于Im2Col+GEMM。在上面的图中,当shape为224x224x3x64时,Winograd的性能反而有所好转。因而,在不同条件下抉择最优的算法对性能至关重要。 算法层面的优化,更多的是通过缩小运行时的计算次数(乘法)来晋升性能,而指令层面的优化则是为了更充沛的利用硬件的算力。对于CPU硬件,影响指令执行速度的关键因素包含了L1/L2缓存的命中率以及指令的流水,通用的优化办法有: 抉择正当数据排布,如NHWC、NC4HW4等等寄存器的正当调配,将寄存器依照用处,能够划分为feature map寄存器、权重寄存器和输入寄存器,寄存器的正当调配能够缩小数据加载的次数。数据的预存取,通过prefetch/preload等指令,能够提前将数据读到cache中。指令重排,尽量减少指令的pipeline stall。向量化计算,应用SIMD指令,如ARM NEON指令,X86 SSE/AVX指令等。这些优化须要对硬件架构有深刻的理解。 端侧运行时的性能次要面临异构和异步并行的挑战,从模型角度看,大部分模型在推理的时候看上去是串行执行的,不过如果把算子外部关上,变成细粒度的kernel,整体执行流还是一个dataflow的图,存在不少异步并行的机会,同时端侧存在大量的异构设施,如果一个模型在执行的时候应用多种类型的设施,两头也存在不同的流水线。 模型的性能,次要还是靠离线的优化和tuning,这一块业界也曾经许多实际了,总的思路次要是规则化的交融pass和离线的算子tuning联合。 端云协同端云协同次要波及三块:云侧训练-端侧推理、云侧训练-端侧增量训练-端侧推理、云/端的联邦学习 云侧训练-端侧推理,重点须要解决怎么生成最适宜端侧的模型,包含模型压缩和自适应模型生成。模型压缩技术咱们后面曾经做了介绍。对于神经网络主动搜寻(NAS),通常被用来生成满足肯定限度条件(例如,微控制器上极致的内存限度)的模型,NAS技术最大的问题在于如何缩短搜寻模型的工夫。 云侧训练-端侧增量训练,重点须要解决云和端的模型高效转换的问题,这个后面章节曾经介绍。 联邦学习,目前业界次要有两个技术流派,一个是横向联邦学习,数据上进行聚合,典型的利用场景是,挪动设施上的隐衷爱护问题,像广告等场景须要建设数百万挪动设施之间的联邦模型,防止用户隐衷数据上传到数据中心。第二个是纵向联邦学习,维度上进行聚合,比拟看重跨机构跨组织大数据单干场景,尤其是银行金融场景的数据安全和隐衷爱护问题。 挪动设施隐衷爱护的架构 跨机构跨组织大数据单干架构 联邦学习在技术上还有许多挑战,比方跨设施的零碎异构以及算法迭代过程中的通信,将会影响最终联邦聚合的效率和精度;联邦学习的过程中的模型加密办法,因为即便通过权重也能够揣测出局部隐衷信息,以及客户端的投毒攻打、反抗样本等;另外一个挑战次要是架构上的,目前联邦学习还没有一个对立的架构,同时反对横向联邦学习和纵向联邦学习。 MindSpore全场景对立架构的解决方案端云对立内核MindSpore在框架的设计上进行了分层设计,将端云共用的数据结构和模块解耦进去,在满足端侧轻量化的同时,放弃了端云架构的一致性,真正实现一次训练无缝部署、端云训练共模型。 【对立IR】MindSpore core的对立IR,保障了端云模型/算子定义的一致性,使得云侧训练的模型能够无缝的部署在端侧。同时,对于端侧训练,能够和云侧应用统一的IR进行模型的重训。 对立IR定义了模型的逻辑构造和算子的属性,并且与模型的长久化是解耦的。开源我的项目中用于长久化数据的形式,应用最为宽泛的,就是protobuffer和flatbuffer。两者相比,protobuffer性能更为弱小,应用也更加的灵便,然而相应的,也更加的重量级。flatbuffer更加的轻,反序列化的速度也更快。MindSpore将对立IR的逻辑数据长久化成不同的物理模式,云侧长久化成protobuffer格局,端侧长久化成flatbuffer,兼顾了数据的一致性与部署的轻量化。 【公共pass】为了晋升性能,训练好的模型在执行推理前,须要提前做一些优化伎俩,这些优化包含了交融、常量折叠、数据排布的调整等等。对于端云共享的优化,同样也是蕴含在MindSpore core模块中,只不过对于云侧推理,这些优化是在线推理时去执行的,而对于挪动终端这些优化在执行推理前离线实现。 【对立接口】MindSpore设计了提供端云对立的C++接口。对立的C++接口的用法尽量与Python接口放弃了统一,升高了学习老本。通过对立接口,用户能够应用一套代码在不同的硬件上进行推理。 轻量化技术【MindSpore for micro】相比于挪动终端,IoT设施MCU芯片资源更加的无限,因而,如何在IoT设施上部署深度学习模型将更具备挑战。 下面的表中,右边示意了云、手机、MCU上内存和存储的大小,左边示意了ResNet-50、MobileNet-V2、int8量化的MobileNetV2占用的存储和内存。 针对IoT设施,MindSpore设计了MindSpore for micro的计划。 部署在云服务器和挪动终端上的推理框架,通过模型解释的形式来进行推理,这样的形式能够反对多个模型以及跨硬件平台,然而须要额定的运行时内存(MCU中最低廉的资源)来存储元信息(例如模型构造参数)。MindSpore for micro的CodeGen形式,将模型中的算子序列从运行时卸载到编译时,并且仅生成将模型执行的代码。它不仅防止了运行时解释的工夫,而且还开释了内存使用量,以容许更大的模型运行。这样生成的二进制大小很轻,因而具备很高的存储效率。 MindSpore for micro的个性将会在1.2的版本中开源。 【量化】MindSpore自适应混合低比特量化技术:依据模型构造和指标压缩率主动搜寻出对应层量化bit数,无需量化专家深度参加。量化因子可训练,在低比特量化场景下可极大晋升训练效率和缩小量化损失。在图像分类/指标检测模型上验证压缩8~10倍场景下,精度优于以后业界量化算法。 MindSpore训练后量化技术:训练后量化相较于量化重训具备两个显著劣势,一是无需大量训练数据集,二是无需从新训练,离线疾速转换。MindSpore采纳pipeline组合量化办法,一阶段采纳惯例线性量化伎俩对权重和激活值进行量化,二阶段对量化误差进行剖析,利用统计学办法对量化模型进行校对,弥补因量化带来的精度损失。 Pipeline 组合量化 高效运行时【端云对立运行时】为了可能为端云的训练、推理提供对立的并行运行框架,MindSpore设计了基于Actor模型的端云对立运行时。 AI训练或者推理,最终都是执行一个DAG计算图,图中每个节点都是一个op,每条边都是一个(或一组)tensor。上面的图中,右边是actor模型的示意图,左边是一个AI计算工作示意图。 咱们将一个op定义为一个actor,actor之间传递tensor。在actor模型中,message是无状态的且不复用的,但在AI计算工作中,为了提高效率,tensor通常会被复用。为了解决这个问题,MindRT中引入了tensor manager来对立治理tensor,所有op通过tensor manager获取tensor。 Tensor Manager反对tensor的援用计数和内存治理。端云对立运行时将在MindSpore 1.2/1.3版本中开源。 【软硬协同】MindSpore原生与端侧的NPU芯片深度联合,最大水平的施展了专有芯片的性能劣势。 【算子优化】在手机CPU上,MindSpore反对了多种卷积算法:Sliding Window、Im2Col+GEMM、Strassen、Winograd、Indirect Convolution、FFT等。如何在不同的条件下抉择最优的卷积算法,通常有3种做法: 基于教训的人工设置通过数学建模的Cost Model通过机器学习算法模型,应用已有数据集对其进行离线训练,最终失去一个牢靠的卷积算子选择器目前,MindSpore反对了2和3两种形式来进行最优卷积算法的抉择。 算法的抉择,除了思考性能,还须要思考特定场景下的内存限度。例如,对于IoT场景的硬件设施,如果抉择最为常见的Im2Col+GEMM算法,计算过程须要将输出和卷积核在内存中拉平,占内存较大。MindSpore针对这种场景,抉择占用内存较少的Indirect Convolution算法。 联邦学习MindSpore的联邦学习办法,同时反对cross-device(ToC)和cross-silo(ToB)两种场景,在数据不出域的条件下,实现多方联结建模,以帮忙企业应用提效降本,助力不同行业智慧降级。在安全性方面,MindSpore提供多种模型加密形式,能够实用于大规模无状态的终端设备,包含差分隐衷、机密共享、平安聚合等,用户可自定义安全等级。 理解完MindSpore的AI框架的几大劣势,连忙【点击链接】并【立刻报名】,即可在 ModelArts 平台学习到一个经典案例把握基于MindSpore的深度学习! ...

June 11, 2021 · 1 min · jiezi

关于ai开发:AI-事件驱动场景-Serverless-实践

简介: 事件驱动是指事件在继续事务管理过程中,进行决策的一种策略。能够通过调动可用资源执行相干工作,从而解决一直呈现的问题。艰深地说是当用户触发应用行为时对用户行为的响应。在 Serverless 场景下,事件驱动完满合乎其设计初衷之一:按需付费。 作者 | 李鹏(元毅)起源 | Serverless 公众号 一、事件驱动框架:Knative Eventing事件驱动是指事件在继续事务管理过程中,进行决策的一种策略。能够通过调动可用资源执行相干工作,从而解决一直呈现的问题。艰深地说是当用户触发应用行为时对用户行为的响应。在 Serverless 场景下,事件驱动完满合乎其设计初衷之一:按需付费。 Knative 模型 图:Knative 模型 Knative 次要包含两大部分:一是用于工作负载的 Serving,包含版本治理、灰度流量、主动弹性;二是 Eventing(事件驱动框架)。 外围玩家 Google;IBM;Pivotal;RedHat;SAP。友商相干产品 Google CloudRun;IBM;Pivotal Function Service(PFC);OpenShift。事件驱动框架:Eventing Knative 的 Eventing 提供了一个残缺的事件模型,不便接入各个内部零碎的事件。事件接入当前,通过 Cloud Event 规范在外部流转,联合 Broker-Trigger 模型进行事件处理。 从上图能够看到,Eventing 中蕴含三局部内容: 事件源Broker-Trigger:事件驱动模型,这个模型在晚期 16 年的版本开始呈现,其原理是 Trigger 订阅 Broker 信息并过滤,最初将事件发送到对应的服务进行生产。音讯零碎:在 Eventing 中每个 Broker 上面对应一个音讯的零碎,来承载对事件的整个流转。目前社区反对的音讯零碎包含 Kafka、NATS、Rocket MQ、Rabbit MQ 等。要害个性:事件规定 事件规定的外围是 Broker-Trigger 模型,它蕴含以下个性: Trigger 的 filter 的作用是对 Event 进行内容过滤;反对对 Event 的 Attribute 以及 Data 的内容进行过滤;反对 Common Expression Language(CEL)表达式过滤;反对通过 SourceAndType(事件源类型)进行过滤。二、事件驱动引擎-事件源事件源介绍Knative 社区中提供了丰盛的事件源接入,包含 Kafka、Github,也反对接入音讯云产品的一些事件,比方 MNS、RocketMQ 等。 ...

April 1, 2021 · 1 min · jiezi

关于ai开发:揭开KPI异常检测顶级AI模型面纱

摘要:2020GDE寰球开发者大赛-KPI异样检测告一段落,来自深圳福田莲花街道的“原从入门到精通”有幸获得了 总榜TOP1的问题,在这里跟大家分享深圳福田莲花街道在本次较量的解决方案。 背景介绍 核心网在挪动运营商网络中占据无足轻重的位置,其异样往往会导致呼叫失败、网络提早等现网故障,对全网的服务质量带来重大的负面影响,多则影响十数万用户,并引发大面积投诉[1]。因而须要疾速及时地发现核心网的异样危险,在影响扩充之前及时打消故障。KPI是一类可能反映网络性能与设施运行状态的指标,本赛题提供某运营商核心网的KPI实在数据,数据模式为KPI工夫序列,采样距离为1小时,选手须要应用[2019-08-01,2019-09-23)的数据进行建模,应用训练好的模型对将来7天的数据进行预测,辨认将来一周KPI序列中的异样点。 评估指标: 本赛题采纳F1作为评估指标,具体计算公式如下: P = TP/(TP+FP) R = TP/(TP+FN) F1 = 2PR/(P+R) 数据摸索 数据**有20个不同的KPI,不同的KPI物理意义不同,代表了不同的核心网指标,因为赛题须要对将来7天的数据进行预测,因而对于建模样本也进行周级别的散布查看。从Fig1中能够显著看到训练集中前三周的异样率显著低于后续几周。进一步剖析能够发现尽管赛题提供了[2019-08-01,2019-09-23)的全副数据,但2019-08-15之前所有20个KPI均毫无异样,第一个异样点是从2019-08-15 02:00:00开始呈现的(Fig2),因而揣测8.15前的数据分布不同于后续样本,或8.15之前存在标注异样的问题。试验中剔除8.15之前的样本建模成果也优于保留该时间段样本,进一步验证了该揣测。 摘要:2020GDE寰球开发者大赛-KPI异样检测告一段落,来自深圳福田莲花街道的“原从入门到精通”有幸获得了 总榜TOP1的问题,在这里跟大家分享深圳福田莲花街道在本次较量的解决方案。 背景介绍 核心网在挪动运营商网络中占据无足轻重的位置,其异样往往会导致呼叫失败、网络提早等现网故障,对全网的服务质量带来重大的负面影响,多则影响十数万用户,并引发大面积投诉[1]。因而须要疾速及时地发现核心网的异样危险,在影响扩充之前及时打消故障。KPI是一类可能反映网络性能与设施运行状态的指标,本赛题提供某运营商核心网的KPI实在数据,数据模式为KPI工夫序列,采样距离为1小时,选手须要应用2019-08-01,2019-09-23)的数据进行建模,应用训练好的模[源码交易型对将来7天的数据进行预测,辨认将来一周KPI序列中的异样点。 评估指标: 本赛题采纳F1作为评估指标,具体计算公式如下: P = TP/(TP+FP) R = TP/(TP+FN) F1 = 2PR/(P+R) 数据摸索 数据**有20个不同的KPI,不同的KPI物理意义不同,代表了不同的核心网指标,因为赛题须要对将来7天的数据进行预测,因而对于建模样本也进行周级别的散布查看。从Fig1中能够显著看到训练集中前三周的异样率显著低于后续几周。进一步剖析能够发现尽管赛题提供了[2019-08-01,2019-09-23)的全副数据,但2019-08-15之前所有20个KPI均毫无异样,第一个异样点是从2019-08-15 02:00:00开始呈现的(Fig2),因而揣测8.15前的数据分布不同于后续样本,或8.15之前存在标注异样的问题。试验中剔除8.15之前的样本建模成果也优于保留该时间段样本,进一步验证了该揣测。 背景介绍 核心网在挪动运营商网络中占据无足轻重的位置,其异样往往会导致呼叫失败、网络提早等现网故障,对全网的服务质量带来重大的负面影响,多则影响十数万用户,并引发大面积投诉[1]。因而须要疾速及时地发现核心网的异样危险,在影响扩充之前及时打消故障。KPI是一类可能反映网络性能与设施运行状态的指标,本赛题提供某运营商核心网的KPI实在数据,数据模式为KPI工夫序列,采样距离为1小时,选手须要应用[2019-08-01,2019-09-23)的数据进行建模,应用训练好的模型对将来7天的数据进行预测,辨认将来一周KPI序列中的异样点。 评估指标: 本赛题采纳F1作为评估指标,具体计算公式如下: P = TP/(TP+FP) R = TP/(TP+FN) F1 = 2PR/(P+R) 数据摸索 数据**有20个不同的KPI,不同的KPI物理意义不同,代表了不同的核心网指标,因为赛题须要对将来7天的数据进行预测,因而对于建模样本也进行周级别的散布查看。从Fig1中能够显著看到训练集中前三周的异样率显著低于后续几周。进一步剖析能够发现尽管赛题提供了[2019-08-01,2019-09-23)的全副数据,但2019-08-15之前所有20个KPI均毫无异样,第一个异样点是从2019-08-15 02:00:00开始呈现的(Fig2),因而揣测8.15前的数据分布不同于后续样本,或8.15之前存在标注异样的问题。试验中剔除8.15之前的样本建模成果也优于保留该时间段样本,进一步验证了该揣测。

January 31, 2021 · 1 min · jiezi