端侧智能化,在MCU中集成AI功能!、平头哥造芯模式跑通了
嵌入式 AI1. 端侧智能化,在MCU中集成AI功能!
原文: https://mp.weixin.qq.com/s/VJL4CZBTRzJKAlYv8EG3vw
在MCU中集成AI功能 IoT应用由感知、计算、执行、连接和安全几部分组成。工作流程基本是:首先,由传感器检测环境信息,将模拟信号转换为数字信号,传递给MCU;接着,MCU对这些数据进行计算分析和处理,得出决策结果,传递给执行层;再接着,执行层根据指令完成相应的动作。在这个过程中,必要的数据也会通过无线连接的方式上传到云端进行云AI运算或存储。 过去AI运算多在云端,现在逐渐向边缘端发展。目前的情况是一般在云端进行机器学习(简称ML)训练,推理除了在云端完成,也可以在设备端进行。在边缘端进行ML的处理,可以提高本地的设备响应,减少云端上传的数据带宽,提高本地数据的安全性。当前一些企业会在MCU中添加特定加速器,通过专用算力进行ML的运算,从而释放CPU的通用算力。 随着5G技术的发展,人们对传统产品的延迟和能耗提出了更高的要求。在MCU中融入人工智能算法,可以将MCU低功耗、低成本、实时性、稳定性、开发周期短、广阔的市场覆盖率等特性与人工智能强大的处理能力相结合,从而更有利于终端智能化。 在应用层面,图像和语音处理是MCU+AI的重要应用方向,比如图形识别、语音助手唤醒词处理以及其他用于各种安全系统的声音分类等应用。人工智能终将会渗透进人们生活的方方面面,而通过MCU来完成一些AI运算,也是未来的重要趋势。 越来越多的厂商布局 从目前的情况来看,全球主要几家MCU厂商都已经在该领域有所布局,包括意法半导体、瑞萨、恩智浦、英飞凌等等。 意法半导体从2007年起开始设计基于ARM Cortex-M的STM32 32位MCU系列,目前意法半导体通用MCU销量已位居全球首位,拥有基于ARM Cortex-M0/M0+/M3/M4/M7/M33,ARM Cortex A7等多个内核,超过1200个料号的多系列、多功能覆盖的全面MCU产品线。 该公司此前表示,近几年,智能家电的快速发展,对MCU的性能、互联提出了越来越高的要求,基于MCU平台运行人工智能和机器学习,发展性能更高、功耗更低的边缘计算,正在成为行业热点。面对这样的趋势,意法半导体很早就开始布局智能的MCU。 意法半导体的软件工具STM32CubeMX中就集成了AI模块,可以方便客户将训练好的AI模型转换为MCU上运行的软件,使MCU可以方便实现AI功能。 瑞萨电子在MCU领域也有很深的积累。今年6月9日,该公司宣布买下美国从事机器学习模型开发的新创企业Reality AI。 Reality AI公司的强项在于声音和视觉之外的传感器数据解析,例如工厂侦测异音或是汽车的语音辨识等都可应用到相关技术。瑞萨买下Reality AI,将可以结合自家MCU 产品,以及该公司的开发环境和推论软体等,对外提供支持AI运算的MCU。此前,虽然瑞萨有自行研发机器控制用途的MCU,但AI相关应用软件都是向外部合作伙伴购买的。 恩智浦也推出了内置NPU的MCU,该公司表示,AI应用最开始是在云端,而现在有一个很明显的趋势,从PC到嵌入式端的需求越来越多。人脸/语音识别门锁、以及包括语音识别、物体识别等在内的各种识别装置,都提出了在本地实现更多推理的需求。 以前的应用对一款微控制器的要求是,按下按钮就有很快的反应。现在就不止这些了,人们希望处理器本身具有预知性,这就需要增加人工智能技术。 恩智浦推出了针对MCU现有应用场景进行升级的内置NPU的MCX,在传统控制应用基础上增加AI元素,在医疗设备、无人机或者工业控制中加上智能识别、故障检测、语音控制等。 基于NPU的MCX可以应用在一些更新的场景中,比如可以识别物体的秤,只需把物体放在秤上就可以直接结账;在医学检测中,可以用于检测含疟疾的红细胞;在交通出行中,可以帮助智能车识别障碍,自动做出判断和处理等等。 小结 整体而言,随着物联网时代的发展,作为物联网设备中必不可少的计算大脑的MCU,也迎来了很好的市场增长机会。同时随着AI、5G技术发展,一些新兴应用场景也给MCU提出了新的要求,需要具备一定的AI功能。因此过去几年越来越多的厂商在MCU中集成AI功能。 2. 半年内第二块国产全功能GPU,附带首个游戏显卡!摩尔线程造芯神速,张建中“黄”气逼人原文: https://mp.weixin.qq.com/s/TMhMjFZbw96n4CUkVQ_z1w
他来了,他来了。 手持GPU,一身黑皮衣、下装牛仔裤、黄皮肤长头发,黑框眼镜之下挡不住硬汉气场。 但他不是英伟达的老黄。 他是曾经老黄左膀右臂之一的老张—— 张建中,James,此前在英伟达中国区任职一把手长达 15 年时间。 现在更被人熟知的头衔,是国内 GPU 公司摩尔线程的创始人兼 CEO。 而这次刚刚捂热的 GPU,已经是他在今年量产上市的第 2 个了—— 时隔,仅半年之久。 不仅如此,附着在这块 GPU 上的标签还有更多: 国产、全功能、全球首个、中高端…… 而且基于它,张建中更是发布了国内首个中高端游戏显卡。 讲真,很难想象这般 " 速度 " 是由一家刚刚成立 2 年的公司所创造的。 由此不免让人心生疑问: 在做到快的同时,质量和性能上是否也一并跟上了呢? 我们不妨一同来看看。 全球首个支持 PCIe 接口的全功能 GPU 摩尔线程的第二个国产全功能 GPU,名为"MT- 春晓 "。 张建中也是将它作为打头阵的产品发布。 据了解,春晓集成了 220 亿个晶体管,内置 4096MUSA 架构通用计算核心以及 128 张量计算核心,可以支持 FP32、FP16 和 INT8 等计算精度。 其它重点参数如下: GPU 核心频率:1.8GHz FP32 计算能力:14.4 TFLOPS INT8 计算能力:57.6 TOPS 显存宽带:448GB/s 显存类型:GDDR6 张健中在现场还提及,春晓解锁了一项 " 全球第一 ": 因为它是业内唯一支持 PCIe Gen5 接口的 GPU。 (许多厂商已经达成共识,PCIe Gen5 将会是未来消费级以及企业级存储设备的重点发展方向。) 那么与半年前摩尔线程所发布的" 苏堤 "GPU相比,二者又有何区别? 张建中表示在摩尔线程 GPU 四大引擎方面,春晓做到了全面升级: 现代图形渲染引擎性能最高提升 3-5 倍 AI 计算加速引擎性能最高提升 4 倍 智能多媒体引擎性能最高提升 4 倍 物理仿真引擎性能最高提升 2.5 倍 至于为什么摩尔线程要在半年时间就将自家 GPU 推陈出新,这个问题我们请教了下张健中: 我们第一个全功能 GPU 苏堤,实际上属于中低端处理器,在 GPU 行业中可以满足国内国产化应用的需求。 但对于大部分主流用户,他们还是期待更高性能的 GPU,因此我们快速发布了春晓,去满足高端的游戏玩家,满足更多用户对图形和计算的需要。 如此一来,我们的产品就能够覆盖高中低端的所有用户。 而提到了游戏,张建中基于春晓 GPU,便发布了另一款 " 国内第一 " 的产品。 国内首款游戏显卡 其实摩尔线程在半年前基于苏堤也发布过显卡产品MTT S60。 但这张显卡的 " 用武之地 " 似乎更多面向的是产业,也就是 B 端。 而这次基于春晓打造的这张显卡MTT S80,则是能让更多大众摸得着的那种了——国内首款游戏显卡。 在现场,张建中还用了一个比较有意思的词来形容它:" 国潮 "。 3. 平头哥造芯模式,正式跑通!原文: https://mp.weixin.qq.com/s/Xem30MmEIP9FTuxUU9hpjg
“生死看淡,不服就干”,平头哥造芯模式,正式跑通。 2022云栖大会现场,新进展再次由阿里云智能总裁张建锋对外宣布。 倚天710已大规模应用,成为中国首个云上大规模应用的自研CPU。
在核心应用场景中,算力性价比提升30%以上,单位算力功耗(耗电量)降低60%以上。 张建锋还宣布,倚天710的部署规模还会进一步扩大,未来两年20%的新增算力都将使用自研CPU。 更直白翻译,就是以后阿里云的芯片部署中,每10颗CPU芯片里就有2颗自研CPU。 这个进展和应用,为何重要? 首先,大规模部署代表着芯片产品获得了市场检验,也意味着最难的生态一环达成闭环——虽然不如新硬件来的“刺激”,但意义和价值却丝毫不逊于新品发布,甚至长远来看,量级简直不能相提并论。 其次,倚天710,作为一款基于Arm架构的云端CPU,想要在x86占主导地位的全球云计算和服务器芯片生态中立足,更是难上加难,目标十中有二更是Arm架构在云端里程碑式的新突破。 最后,倚天710的大规模部署,不仅是中国首个自研CPU的应用纪录,还意味着诞生在造芯浪潮中的平头哥模式干出来了! 纵观半导体半个世纪的发展史,检验造芯模式的核心关键一以贯之: 造出来(设计和流片) 用得上(需求和性能) 用得好(功耗和成本) 离不开(工具和生态)
而在倚天710的进展中,这四大流程关键,平头哥都(一口气)完成了实践证明。 唯一待解之谜,只剩下造芯模式的通关速度—— 传统IT时代的造芯公司和通用芯片,短则5~7年,长则可能10年…… 而平头哥的倚天710,仅仅用了2年。 所以这种模式和速度背后,根本原因是什么? 是半导体领域也面临世纪变革? 抑或一个时代果真有一个时代的造芯模式? 4. 国产AI制药新突破!深势科技发布一站式药研计算设计平台Hermite原文: https://mp.weixin.qq.com/s/V-T4m1cX7VA0xILXL2p6bg
年度最受关注赛道——AI制药,传来最新进展: 深势科技的新一代药物计算设计平台Hermite正式发布,并且迅速引发圈内热议和关注。 传统上,研发一款新药平均需要耗费10-15年时间、花费26亿美元,其中包括大量失败尝试的支出。 而AI for Science的新范式正是被寄予了提高研发成功率,从而加速研发周期、减少成本、最终提高新药研发投资回报率的厚望。 此轮AI制药热潮始于预测蛋白质结构的AlphaFold系列,但这只是新药研发的第一步。 后续还需要结构精修,到苗头化合物筛选,再到先导化合物优化和性质预测等等。 这众多环节,也都急需相应的新工具,新算法和不断进步的认知。 在科研工具方面,深势科技团队于去年推出Uni-Fold,全尺寸复现AlphaFold 2,并开源了训练代码与推理代码,为国际上首家。 如今近一年过去,不但Uni-Fold在功能和速度上迎来诸多改进,还有更多后续核心功能集中发布。 这些功能整合在Hermite平台上,致力于为药物研发工作者提供在CADD(计算机辅助药物设计)中数据、算法、算力三位一体的一站式解决方案。 药物研发一站式解决方案Hermite Hermite平台的四大核心功能,对应着小分子药物设计领域的各项流程。 首先,蛋白质结构预测与优化工具Uni-Fold是一个起点。 Uni-Fold做到精度与AlphaFold 2接近,但效率比AlphaFold 2 显著提升,并克服了AlphaFold 2未开源训练代码、硬件支持单一、模型不可商用等局限性, 最近的升级中,Uni-Fold还在超大规模蛋白复合物预测上取得新突破,对包括离子通道、新冠病毒刺突糖蛋白等在内的对称蛋白的进一步研究具有重大意义。 预测出靶点蛋白质的结构就可以进入苗头化合物筛选环节,对应的是超高通量虚拟筛选工具Uni-Docking。 Uni-Docking在保持筛选精度的前提下,在GPU上实现了比单核CPU 1600倍的加速,最快0.5小时可完成1200万可采买分子数据库的筛选。 与MM GB/PBSA组成虚拟筛选工作流后,准确性还能进一步得到提升,将千万级分子数据库的虚拟筛选推入可及、可用、可靠的时代。 有了靶点和苗头化合物,接下来还需要预测药靶结合模式,对应工具为Uni-IFD。 通过模拟药物分子与靶点结合产生的“诱导契合”效应,Uni-IFD可以精确预测药物与靶点的结合模式。 同时,Uni-Aquasite可以通过计算得到每个水分子的自由能,寻找对药靶结合影响较大的水分子。 最后,则是基于自由能微扰的先导化合物优化工具Uni-FEP。 Uni-FEP 基于自由能微扰理论、分子动力学、增强采样算法,以化学精度高效评估蛋白质与配体的结合亲和能。克服了传统分子对接方法打分函数不准、采样不足的问题。 适用于R基团优化、骨架跃迁、电荷转移、大环成环等多种不同的优化场景,以实现工业规模的先导化合物优化。 5. 谷歌、OpenAI学者谈AI:语言模型正在努力「攻克」数学原文: https://mp.weixin.qq.com/s/vAmpymJvkK8HRWFFCjMyiw
如果问计算机擅长什么,在所有的答案里,数学必须榜上有名。在经历了漫长的研究之后,顶尖学者们在研究计算机关于数学计算方面的发展,取得了令人惊讶的成绩。 论文地址: https://arxiv.org/pdf/2206.14858.pdf
就拿去年来说,来自加州大学伯克利分校、OpenAI 和 Google 的研究人员在语言模型方面取得了长足的进步,GPT-3、DALL·E 2 等被开发出来。然而,直到现在,语言模型还无法解决一些简单的、用语言描述的数学问题,例如「Alice 比 Bob 多五个球,Bob 在给 Charlie 四个球后有两个球。问 Alice 有几个球?」这对语言模型来说,想要给出正确答案,可能就有点「吃力」了。 「当我们说计算机非常擅长数学时,意思是它们非常擅长特定的、具体的事情,」来自谷歌的机器学习专家 Guy Gur-Ari 表示。计算机擅长算术是不假,但在特定的模式之外,计算机就无能为力了,简单的文字描述题都回答不了。 谷歌研究员 Ethan Dyer 曾经表示:做数学研究的人有一套僵化的推理系统,对于他们熟知的和不了解的内容,这两者之间有着明显的鸿沟。 解决文字问题或定量推理问题很棘手,因为不同于其他问题,这两者需要鲁棒性和严谨性。如果过程中的任何一步出现错误,将会导致错误的答案。DALL·E 在绘画方面令人印象深刻,尽管它生成的图像有时会很奇怪,可能遗漏人的手指、眼睛长得奇怪…… 这些我们都能接受,但是它在数学方面出现了错误,我们的容忍度就会非常小。来自 OpenAI 的机器学习专家 Vineet Kosaraju 也曾表达过这种想法,「我们对语言模型所犯的数学错误(比如将 10 误解为 1 和 0,而不是 10)容忍性还是比较小的。」 「我们研究数学仅仅是因为我们发现它独立且非常有趣,」OpenAI 机器学习专家 Karl Cobbe 说。 随着机器学习模型在更大的数据样本上训练而成,它们的鲁棒性更好、出错也更少。但扩大模型规模似乎只能通过定量推理进行。研究人员意识到,对于语言模型所犯的错误似乎需要更有针对性的方法来解决。 Minerva 基于谷歌自研的 Pathways 语言模型 (PaLM),具有更多的数学数据集,包含 arXiv、 LaTeX 等数学格式。Minerva 还采用了其他策略,在思维链提示(chain-of-thought prompting)中,Minerva 将更大的问题分解成小块。此外,Minerva 还使用多数投票(majority voting),不是要求模型给出一个答案,而是要求它提出 100 种答案。在这些答案中,Minerva 选择最常见的一种答案。 这些新策略的收益是巨大的,Minerva 在 MATH 上的准确率高达 50%,在 GSM8K 以及 MMLU(包括化学和生物学在内的一组更通用的 STEM 问题)上的准确率接近 80%。当 Minerva 被要求重做稍微调整过的问题时,它的表现同样很好,这表明它的能力不仅仅是来自记忆。 Minerva 可能有奇怪、混乱的推理,但仍然得出正确的答案。尽管像 Minerva 这样的模型可能会得出与人类相同的答案,但它们所遵循的实际过程可能大不相同。 谷歌机器学习专家 Ethan Dyer 表示,「我认为存在这样一种观念,即数学相关人士有一些严格的推理系统,了解某事和不了解某事之间存在明显的区别。」但人们给出的答案不一致,会犯错误,也无法应用核心概念。在机器学习前沿中,边界是模糊的。 6. AI挑战国际数学奥林匹克竞赛,Meta神经定理证明器拿到多项SOTA原文: https://mp.weixin.qq.com/s/n1zOPNKcshJsE2umROVWfA 论文地址: https://arxiv.org/pdf/2205.11491.pdf
数学定理证明一直被视为构建智能机器的关键能力。证明一个特定的猜想是真是假,需要使用符号推理等数学知识,比简单的识别、分类等任务要难得多。 近日,Meta AI 构建了一个神经定理证明器 HyperTree Proof Search(HTPS),已经解决了 10 场国际数学奥林匹克竞赛 (IMO) 中的问题,比以往任何系统都更多。此外,该 AI 模型的性能比数学基准 miniF2F 上的 SOTA 方法高出 20%,比 Metamath 基准上的 SOTA 方法高出 10%。 在一定意义上,定理证明要比构建 AI 来玩国际象棋等棋盘游戏更具挑战性。当研究者试图证明一个定理时,可能移动的动作空间不仅很大而且有可能是无限的。相比较而言,在国际象棋或围棋中,这些游戏的一系列走法会被预测出来,即使算法没有给出最好的走法也影响不大。而在定理证明中,当算法走入死胡同就没办法解决了,性能再好的求解器也只是白费力气。Meta AI的新方法解决了这个棘手的问题,LeCun也转推称赞。 我们用一个例子来说明 HTPS 的优势:假设 a 和 b 都是质因子为 7 的自然数,并且 7 也是 a + b 的质因子,如果假设 7^7 可以整除(a + b)^7 - a^7 - b^7,那么请证明 a + b 至少是 19。 假如让人类来证明的话,他们大概率会用到二项式。而 HTPS 使用 Contraposition 方法,大大简化了方程,然后再检查多种不同的情况。 如下图为本文模型发现的证明示例,即在 miniF2F 中另一个 IMO 问题的证明: 7. 一文汇总超参自动优化方法原文: https://mp.weixin.qq.com/s/E2osIx2PEoR7ateEIN0FLQ
一、网格搜索(Grid Search) 网格搜索是暴力搜索,在给定超参搜索空间内,尝试所有超参组合,最后搜索出最优的超参组合。sklearn已实现该方法,使用样例如下:
1from sklearn import svm, datasets
2from sklearn.model_selection import GridSearchCV
3import pandas as pd
4
5# 导入数据
6iris = datasets.load_iris()
7# 定义超参搜索空间
8parameters = {'kernel''linear', 'rbf'), 'C':[1, 10]}
9# 初始化模型
10svc = svm.SVC()
11# 网格搜索
12clf = GridSearchCV(estimator = svc,
13 param_grid = parameters,
14 scoring = 'accuracy',
15 n_jobs = -1,
16 cv = 5)
17clf.fit(iris.data, iris.target)
18返回:GridSearchCV(cv=5, estimator=SVC(), n_jobs=-1,
19 param_grid={'C': [1, 10], 'kernel': ('linear', 'rbf')},
20 scoring='accuracy')
21
22# 打印结果
23print('详细结果:\n', pd.DataFrame.from_dict(clf.cv_results_))
24print('最佳分类器:\n', clf.best_estimator_)
25print('最佳分数:\n', clf.best_score_)
26print('最佳参数:\n', clf.best_params_).
27返回:
28详细结果:
29 mean_fit_time std_fit_time mean_score_time std_score_time param_C ... split3_test_score split4_test_score mean_test_score std_test_score rank_test_score
300 0.000788 0.000394 0.000194 0.000389 1 ... 0.966667 1.0 0.980000 0.016330 1
311 0.000804 0.000402 0.000199 0.000399 1 ... 0.933333 1.0 0.966667 0.021082 4
322 0.000593 0.000484 0.000593 0.000484 10 ... 0.966667 1.0 0.973333 0.038873 3
333 0.000593 0.000484 0.000399 0.000489 10 ... 0.966667 1.0 0.980000 0.016330 1
34[4 rows x 15 columns]
35最佳分类器:
36 SVC(C=1, kernel='linear')
37最佳分数:
380.9800000000000001
39最佳参数:
40 {'C': 1, 'kernel': 'linear'}
sklearn.model_selection.GridSearchCV[1]的重要参数说明: estimator: scikit-learn模型。 param_grid: 超参搜索空间,即超参数字典。 scoring: 在交叉验证中使用的评估策略。 n_jobs: 并行任务数,-1为使用所有CPU。 cv: 决定采用几折交叉验证。
二、随机搜索(Randomized Search) 随机搜索是在搜索空间中采样出超参组合,然后选出采样组合中最优的超参组合。随机搜索的好处如下图所示: 解释图1,如果目前我们要搜索两个参数,但参数A重要而另一个参数B并没有想象中重要,网格搜索9个参数组合(A, B),而由于模型更依赖于重要参数A,所以只有3个参数值是真正参与到最优参数的搜索工作中。反观随机搜索,随机采样9种超参组合,在重要参数A上会有9个参数值参与到搜索工作中,所以,在某些参数对模型影响较小时,使用随机搜索能让我们有更多的探索空间。 同样地,sklearn实现了随机搜索[3],样例代码如下: 1from sklearn import svm, datasets
2from sklearn.model_selection import RandomizedSearchCV
3import pandas as pd
4from scipy.stats import uniform
5
6
7# 导入数据
8iris = datasets.load_iris()
9# 定义超参搜索空间
10distributions = {'kernel':['linear', 'rbf'], 'C':uniform(loc=1, scale=9)}
11# 初始化模型
12svc = svm.SVC()
13# 网格搜索
14clf = RandomizedSearchCV(estimator = svc,
15 param_distributions = distributions,
16 n_iter = 4,
17 scoring = 'accuracy',
18 cv = 5,
19 n_jobs = -1,
20 random_state = 2021)
21clf.fit(iris.data, iris.target)
22返回:RandomizedSearchCV(cv=5, estimator=SVC(), n_iter=4, n_jobs=-1,
23 param_distributions={'C': <scipy.stats._distn_infrastructure.rv_frozen object at 0x000001F372F9A190>,
24 'kernel': ['linear', 'rbf']},
25 random_state=2021, scoring='accuracy')
26
27
28# 打印结果
29print('详细结果:\n', pd.DataFrame.from_dict(clf.cv_results_))
30print('最佳分类器:\n', clf.best_estimator_)
31print('最佳分数:\n', clf.best_score_)
32print('最佳参数:\n', clf.best_params_)
33返回:
34详细结果:
35 mean_fit_time std_fit_time mean_score_time std_score_time param_C ... split3_test_score split4_test_score mean_test_score std_test_score rank_test_score
360 0.000598 0.000489 0.000200 0.000400 6.4538 ... 0.966667 1.0 0.986667 0.016330 1
371 0.000997 0.000002 0.000000 0.000000 4.99782 ... 0.966667 1.0 0.980000 0.026667 3
382 0.000798 0.000399 0.000399 0.000488 3.81406 ... 0.966667 1.0 0.980000 0.016330 3
393 0.000598 0.000488 0.000200 0.000399 5.36286 ... 0.966667 1.0 0.986667 0.016330 1
40[4 rows x 15 columns]
41最佳分类器:
42 SVC(C=6.453804509266643)
43最佳分数:
440.9866666666666667
45最佳参数:
46 {'C': 6.453804509266643, 'kernel': 'rbf'}相比于网格搜索,sklearn随机搜索中主要改变的参数是param_distributions,负责提供超参值分布范围。 三、贝叶斯优化(Bayesian Optimization) 我写本文的目的主要是冲着贝叶斯优化来的,一直有所耳闻却未深入了解,所以我就来查漏补缺了。以下内容主要基于Duane Rich在《How does Bayesian optimization work?》[4]的回答。 关于超参数更多的解读,请大家点击原文了解更多。
|