微软ML Copilot框架释放机器学习能力

摘要:大模型席卷而来,通过大量算法模型训练推理,能根据人类输入指令产生图文,其背后是大量深度神经网络模型在做运算,这一过程称之为机器学习,本文从微软语言大模型出发,详解利用大型语言模型(Large Language Models, LLMs)解决实际机器学习(ML)任务的框架,以及存算一体的存内计算架构,从软硬件优化层面为机器学习提升提供参考。

机器学习定义:

机器学习(ML)是一种从数据中提取知识并应用于解决复杂问题的技术,这些问题往往没有现成的确定性算法解决方案,或者创建这样的算法成本过高或不现实。以垃圾邮件检测为例,设计一个基于固定规则的算法来识别所有垃圾邮件几乎是不可能的任务。因为垃圾邮件的特征不断演变,且可能包含不断增长甚至相互冲突的规则,这要求算法必须不断地更新和维护,这在实践中是不可行的。

在机器学习中,模型通过分析大量的数据来学习如何执行任务,而不是被直接编程来执行特定的规则。这种方法使得机器学习在处理那些规则不明确或难以定义的任务时特别有用。例如,在电子邮件服务中,机器学习模型可以学习如何区分垃圾邮件和非垃圾邮件,而无需明确列出所有可能的垃圾邮件特征。这种学习过程使得模型能够适应新的数据模式,并且随着时间的推移而自我改进。

机器学习过程主要分为两个阶段:训练和推理。在训练阶段,基于数据优化学习模型的参数。在预测阶段,部署训练好的模型对新数据进行预测。虽然在大多数情况下,训练和推理阶段是相互独立的,但在增量学习的情况下,它们是耦合在一起的。这些情况下的模型会持续进行训练并做出预测。

图1 可视化训练和推理阶段。

机器学习的主要目标是泛化,以便它能够很好地处理未见过的数据。然而,这一目标与其优化目标相矛盾,即机器学习试图最小化训练数据上的训练损失。因此,出现了众所周知的偏差-方差问题。如果一个机器学习模型对训练数据过拟合,即具有高方差,它对未见过的数据表现不佳。另一方面,如果模型欠拟合,即具有高偏差,它就无法学习数据中的重要模式或规律。过拟合通常发生在模型对底层问题来说太复杂的情况下。相反,欠拟合发生在模型太简单的情况下。

图2 描述偏差-方差权衡。

接下来,我们将介绍不同类型的机器学习任务。之后,我们将探讨机器学习可以解决的不同问题。然后,我们将回顾广泛使用的机器学习算法和方法。

在机器学习领域,任务可以根据其目标和所需的数据处理方式进行分类,包括但不限于:

  1. 监督学习:在这个任务中,模型从标记的训练数据中学习,并尝试对未见过的数据做出预测或决策。
  2. 无监督学习:无监督学习算法处理未标记的数据,尝试找出数据中的结构或模式。
  3. 半监督学习:这种学习介于监督学习和无监督学习之间,使用少量标记数据和大量未标记数据。
  4. 强化学习:在这种类型的学习中,智能体(agent)通过与环境的交互来学习,目标是最大化某种累积奖励。
  5. 迁移学习:这是一种学习技术,其中一个模型在一个任务上学习得到的知识被用来提高在另一个不同但相关任务上的学习效率。

机器学习可以解决的问题包括:

  1. 分类问题
  2. 回归问题
  3. 聚类问题
  4. 异常检测
  5. 推荐系统
  6. 自然语言处理任务等

广泛使用的机器学习算法和方法包括:

  1. 决策树
  2. 随机森林
  3. 支持向量机(SVM)
  4. 神经网络
  5. 梯度提升机(GBM)
  6. K-最近邻(KNN)

MLCopilot 解决机器学习任务框架

机器学习算法的分类可以根据它们所需的数据格式及反馈特征、它们旨在解决的问题类型,以及它们运用的技术方法。另外,根据学习模式的不同,机器学习还可以划分为在线学习和离线学习两种形式。在离线学习模式下,所有训练数据在训练开始前都已准备就绪,这是机器学习最普遍的应用形式。相对地,在在线学习模式中,可能是因为整个数据集无法预先获得,或者对整个数据集同时进行训练在计算上不可行。时间序列分析,如金融市场中的序列预测,就是一个典型的在线学习例子,因为它需要按时间顺序逐步处理数据。而面对无法一次性加载到内存中的庞大数据集时,也需要采用在线学习方法,因为这样的数据量使得整体训练变得不切实际。

常用的机器学习算法有随机梯度下降(Stochastic Gradient Descent, SGD),它根据模型参数的输出损失函数,在梯度的相反方向上进行优化;支持向量机(Support Vector Machines, SVMs),通常用于原始空间中输入数据不能线性分离的情况;人工神经网络(Artificial Neural Networks, ANNs),ANN在图像分类、目标检测和自然语言处理等任务中取得了巨大成功。除此之外,提出MLCopilot,这是一个利用大型语言模型(Large Language Models, LLMs)解决实际机器学习(ML)任务的框架。

MLCopilot展示了大型语言模型的多功能性,它不仅能处理与文本相关的任务,还能处理涉及异构输入和复杂推理的任务。

MLCopilot的核心思想是知识驱动的推理,即利用LLMs基于从历史经验中分析和提炼出的先验知识进行推理和任务解决。为此,MLCopilot分为两个阶段:离线和在线,这两个阶段在图1中都有清晰的图示说明。在离线阶段,LLM被用于分析规范化的历史经验数据并提炼出有用的知识。在线阶段,用户将向基于LLM构建的MLCopilot发起查询,以获取针对新任务的合适机器学习解决方案。

图3:MLCopilot 框架

离线阶段:创建经验以及知识池

在离线阶段,MLCopilot的主要任务是创建经验和知识的池(pools)。这涉及收集、规范化和分析历史数据,以便于提取有价值的信息和模式。

这一阶段可能包括数据清洗、特征提取、知识表示和知识库的构建等步骤。

通过使用大型语言模型(LLMs),MLCopilot能够从历史经验中学习和提炼出有用的知识,这些知识随后可以用于推理和解决新的问题。

图4:离线阶段

在线阶段:交互与解决

MLCopilot的在线阶段旨在根据离线阶段获得的现成信息进行推理和任务解决。具体来说,面对用户提出的带有任务描述的查询,MLCopilot将通过以下步骤在一个回合中响应相应的合理机器学习(ML)解决方案:

1.理解用户查询:首先,MLCopilot需要理解用户提出的任务描述,这通常涉及到自然语言处理技术来解析和理解用户的查询内容。

2.检索相关信息:接着,MLCopilot将在离线阶段创建的经验和知识池中检索与用户任务描述相关的信息。这可能包括先前解决类似任务的策略、模型架构、参数设置等。

3.利用大型语言模型(LLM):MLCopilot将与LLM交互,通过一个精心设计的提示(prompt)来引导LLM进行推理和任务解决。这个提示将基于检索到的相关信息,并明确用户的需求。

4.生成解决方案:LLM将根据提供的提示和知识库中的信息,生成一个或多个可能的ML解决方案。这些解决方案将尽可能地满足用户的任务需求。

5.返回结果:最后,MLCopilot将评估LLM生成的解决方案,并选择最合适的方案返回给用户。这个过程可能涉及到额外的推理步骤,以确保所选方案的合理性和有效性。

6.用户交互:在整个过程中,MLCopilot可能还需要与用户进行交互,以获取更多的上下文信息或澄清用户的具体需求。

通过这种方式,MLCopilot的在线阶段能够快速地为用户提供基于历史经验和知识库的定制化机器学习解决方案,极大地提高了解决复杂任务的效率和准确性。

在机器学习自动化(AutoML)和元学习(meta learning)领域,有多种传统方法被提出和使用,包括:

随机搜索(Random):随机搜索超参数。

  1. ASKL(Feurer et al., 2015):一种基于序列模型的超参数优化方法。
  2. Constant(Bardenet et al., 2013; Kotthoff et al., 2019):一种在超参数空间中进行均匀采样的方法。
  3. TST-M(Wistuba et al., 2016):基于贝叶斯优化的超参数调整方法。
  4. HyperSTAR(Mittal et al., 2020):一种使用神经网络来预测超参数性能的方法。
  5. HyperFD(Yan et al., 2022):一种高效的超参数优化方法。
  6. FLAML-Zero(Wang et al., 2021a):一种零样本超参数优化方法。

MLCopilot在这些传统方法的基础上,利用大型语言模型(LLM)进行知识驱动的推理,以解决机器学习任务。MLCopilot的在线阶段通过以下两种方式与LLM交互:

LLM-ZS(Zero-Shot):直接提示LLM生成一个零样本解决方案,仅基于任务描述。这类似于使用GitHub Copilot或Amazon CodeWhisperer等工具。

LLM-FS(Few-Shot):使用少量样本提示技术(Brown et al., 2020),通过在提示中添加一些示例来实现上下文学习。这些示例是从规范化的经验池中随机选择的。与MLCopilot不同,LLM-FS没有使用经验和知识检索等高级技术。

表1:HPO-B、PD1和HyperFD关键指标

在进行的实验中,MLCopilot框架在三次独立试验中均实现了最高的归一化准确率(nAcc),特别是在初次尝试(nAcc@1)中表现出显著的提升。这一结果突显了LLM(大型语言模型)在处理机器学习任务时的巨大潜力。与传统的基线方法相比,即使是少量样本(LLM-FS)也展现出了超越性能,这进一步证实了LLM在机器学习领域的应用前景。

在针对PD1数据集的测试中,归一化准确率(nAcc)的评分范围被设定在[−2, 2]之间,遵循了Wang等人(2021b)的研究设定。在此设置下,MLCopilot相较于其他所有比较方法仍然保持最佳性能。特别是,“Constant”这一基线方法的表现几乎超过了所有其他基线,这引发了对其他基线在任务相似性度量上有效性的质疑。同时,LLM-ZS(零样本)和LLM-FS(少量样本)在PD1上未能取得成功,这表明PD1对LLM来说更具挑战性。

对于HyperFD基准测试,我们遵循了Yan等人(2022)的方法,采用平均精度(AP)和排名来评价模型性能,其中AP值越高越好,排名越低越好(范围在[1, 216]内)。与HPO-B中观察到的趋势相似,LLM-FS在给出一些示例后,能够达到与大多数基线方法相媲美的性能水平。预期随着MLCopilot技术的整合,LLM-FS的性能有望进一步提升。

存内计算架构大幅提升机器学习

器学习算法的训练一般通过迭代计算完成,如反复执行包括矩阵乘法在内的运算,最终收敛到一个最优解。因此,基于阻变存储器阵列的矩阵-向量乘法也被用来加速机器学习。但是,迭代意味着计算缓慢,同时带来巨大能耗。存内计算架构实现一步训练线性回归、逻辑回归等机器学习算法,无需迭代,从而显著提升计算速度、降低能耗。

存内计算技术(Computing in Memory,CIM)是一种将计算逻辑直接嵌入到存储器中的新型计算范式。其核心原理是在存储器中实现简单的计算操作,以降低数据传输的功耗和延迟。存内计算技术通过将计算能力与存储器紧密集成,旨在克服冯·诺依曼瓶颈问题,提高计算性能和效率。

存内计算技术的原理可以分为以下几个方面:

  1. 存储器与计算单元的融合:存内计算技术将计算单元嵌入到存储器中,使得数据可以在存储器中直接进行计算操作,避免了数据在存储器和处理器之间的频繁传输,降低了功耗和延迟。
  2. 计算原语:存内计算技术中的计算原语是实现数据处理的基本操作。常见的计算原语包括逻辑门、乘积累加操作(MAC)等。这些操作可以直接在存储器中执行,从而减少了数据传输的次数和功耗。
  3. 存储器阵列:存内计算技术通常采用存储器阵列结构,将计算单元与存储单元相互连接。这样的结构使得数据可以在存储器阵列中进行高效地处理和访问。
  4. 硬件加速:存内计算技术通过硬件加速,可以大幅提高计算性能,满足大规模数据处理和人工智能应用场景对计算速度和效率的需求。
  5. 混合计算架构:存内计算技术可以与传统的计算架构相结合,形成混合计算架构,以实现更高的计算性能和能效。

由于其高速计算的性能,存内计算在加速机器学习方面具有巨大潜力,有力地支撑其应用于边缘端的人工智能芯片。

总结:

MLCopilot和存内计算在支持机器学习方面相辅相成:MLCopilot通过知识驱动的推理,提供了一种软件层面的解决方案,而存内计算则从硬件层面提升了计算效率。MLCopilot利用历史数据和知识来优化任务解决过程,存内计算则通过减少数据搬运来提升数据处理速度。两者结合使用,可以在机器学习任务中实现更快速的模型训练和更高效的模型推理,尤其是在资源受限的边缘计算环境中。

随着技术的不断进步,MLCopilot架构和存内计算技术有望在未来的机器学习领域发挥更大的作用,解决更多复杂的任务,并推动人工智能技术的发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

取得Claude模型的Key

目录 1.登录Claude \ Anthropic。需要美丽国IP。 2.取得Key 3.可用模型 4.帮助文档地址 5.使用这个key 6.取得Credit 1.登录Claude \ Anthropic。需要美丽国IP。 2.取得Key 3.可用模型 4.帮助文档地址 https://docs.anthropic.com/claude/docs/intro-to-claude --------…

前后端分离,使用sa-token作为安全框架快速搭建一个微服务项目

之前写过一个单体项目,现在想把它升级为微服务项目。在拆分升级的过程中发现了很多问题,本次就来记录一下遇到的问题和解决方法。(这篇文章只是记录一下拆分项目的基础架构,并使用sa-token做微服务项目的安全框架,快速…

upload-labs后续(14-)

图片马 在图片中加入木马,然后上传让浏览器解析,达到上传木马的目的 制作图片马:可以在notepad或者winhex中打开文件,在文件头中加入图片的文件头,再在文件末尾加入木马即可。 图片文件头如下: 1.Png图片…

学生党学习亚马逊云科技AWS、求职上岸就申AWS Cloud Club队长!

毕业了怎么找工作?该怎么学AWS?这是同学们最关心的问题。最近AWS推出的Cloud Club校园社区计划就可以完美解决这些问题! 🏫AWS校园社区计划是在学校构建校园社团(全球学校),带着大家学最热的开发、AI/ML技术&#xff0…

IDEA主题美化【保姆级】

前言 一款好的 IDEA 主题虽然不能提高我们的开发效率,但一个舒适简单的主题可以使开发人员更舒适的开发,时常换一换主题可以带来不一样的体验,程序员的快乐就这么简单。话不多说,先上我自己认为好看的主题设置。 最终效果图: 原…

《机器学习by周志华》学习笔记-线性模型-03

1、多分类学习 1.1、背景 我们在上一节介绍了「线性判别分析(LDA)」,LDA的从二分类任务可以推广到多分类任务中。 而现实中常遇到的多分类学习任务。有些二分类的学习方法可以直接推广到多分类,但是更多情况下是基于一些策略,利用二分类学习器来解决多分类的问题。 1.…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统: Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…

机器学习作业3____决策树(CART算法)

目录 一、简介 二、具体步骤 样例: 三、代码 四、结果 五、问题与解决 一、简介 CART(Classification and Regression Trees)是一种常用的决策树算法,可用于分类和回归任务。这个算法由Breiman等人于1984年提出,它…

如何让Ubuntu上的MySQL开发更便捷

前言 作为一款开源的数据库开发与数据库管理协同工具,(OceanBase Developer Center,简称ODC),针对MySQL数据源,已提供了涵盖SQL开发、变更风险管控、数据安全合规等多个方面的功能,从而为MySQL…

新媒体运营-----短视频运营-----PR视频剪辑----视频调色

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. Lumetri调色,明暗对比度2. Lumetri调色,创意与矢量示波器2.1 创意2.2 矢量示波器 3. L…

视频美颜SDK与主播美颜工具的技术原理与应用场景分析

在直播视频领域中,视频美颜SDK和主播美颜工具发挥着至关重要的作用。本文将探讨这些工具的技术原理及其在不同应用场景中的应用。 一、视频美颜SDK的技术原理 1.1 图像处理技术 视频美颜SDK的核心技术之一是图像处理技术。根据用户设定的美颜参数进行相应的调整。…

Meta Llama 3 性能提升与推理服务部署

利用 NVIDIA TensorRT-LLM 和 NVIDIA Triton 推理服务器提升 Meta Llama 3 性能 我们很高兴地宣布 NVIDIA TensorRT-LLM 支持 Meta Llama 3 系列模型,从而加速和优化您的 LLM 推理性能。 您可以通过浏览器用户界面立即试用 Llama 3 8B 和 Llama 3 70B(该…

SpringBoot 快速开始 Dubbo RPC

文章目录 SpringBoot 快速开始 Dubbo RPC下载 Nacos项目启动项目的创建创建主项目接口定义服务的创建Dubbo 服务提供者的创建服务的消费者创建 添加依赖给 Provider、Consumer 添加依赖 开始写代码定义接口在 Provider 中实现在 Consumer 里面使用创建启动类 注册中心配置启动 …

YOKOGAWA横河手操器维修hart通讯器YHC5150X-01

横河手操器设置注意事项:内藏指示计显示选择与单位设置 有如下 5 种显示模式及单位设置百分比显示、用户设置显示、用户设置和百分比交替显示、输入压力显示、输入压力和百分比交替显示。即应用在当没有输入时操作要求输出为20mA引压方向设置右/左侧高压&#xff0c…

Docker容器:数据管理与镜像的创建(主要基于Dockerfile)

目录 一、Docker 数据管理 1、数据卷(Data Volumes) 2、数据卷容器(DataVolumes Containers) 二、容器互联(使用centos镜像) 三、Docker 镜像的创建 1、基于现有镜像创建 2、基于本地模板创建 3、基…

QT Windows 实现调用Windows API获取ARP 表

简介 使用ping方式获取网络可访问或者存在的设备发现部分会无法ping通但实际网络上存在此设备, 但使用arp -a却可以显示出来, 所以现在使用windows API的方式获取arp 表。 实现 参考Windows提供的示例转化成Qt Qt .pro LIBS -liphlpapiLIBS -lws2_32…

R-Tree: 原理及实现代码

文章目录 R-Tree: 原理及实现代码1. R-Tree 原理1.1 R-Tree 概述1.2 R-Tree 结构1.3 R-Tree 插入与查询 2. R-Tree 实现代码示例(Python)结语 R-Tree: 原理及实现代码 R-Tree 是一种用于管理多维空间数据的数据结构,常用于数据库系统和地理信…

【CANoe示例分析】TCP Chat(CAPL) with TLS encription

1、工程路径 C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 15.3.89\Ethernet\Simulation\TLSSimChat 在CANoe软件上也可以打开此工程:File|Help|Sample Configurations|Ethernet - Simulation of Ethernet ECUs|Basic AUTOSAR Adaptive(SOA) 2、示例目…

面试题:斐波那契数列

题目描述: 写一个函数,输入n,求斐波那契数列的第n项.斐波那契数列定义如下: F(0) 0 F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 解题方法: 算法1: 利用递归实现,这个方法效率有严重问题,时间复杂度为O(2^n) long long Fibon(int n) {if (…

微软如何打造数字零售力航母系列科普03 - Mendix是谁?作为致力于企业低代码服务平台的领头羊,它解决了哪些问题?

一、Mendix 成立的背景 Mendix的成立是为了解决软件开发中最大的问题:业务和IT之间的脱节。这一挑战在各个行业和地区都很普遍,很简单:业务需求通常被描述为IT无法正确解释并转化为软件。业务和IT之间缺乏协作的原因是传统的代码将开发过程限…