低GPU利用率的实证研究;可解决数学问题的数据合成新范式;大规模合成数学推理的指令微调数据;大模型改进推荐系统

news2024/11/26 12:43:14

编者按:欢迎阅读“科研上新”栏目!“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里,你可以快速浏览研究院的亮点资讯,保持对前沿领域的敏锐嗅觉,同时也能找到先进实用的开源工具。

本期内容速览

01. 深度学习作业低GPU利用率问题的实证研究 (ICSE 2024)

02. KPDDS:通过关键点驱动的数据合成解决数学问题

03. MathScale:大规模合成数学推理的指令微调数据

04. RecAI:大模型改进推荐系统的五种方式

深度学习作业低GPU利用率问题的实证研究(ICSE 2024)

new-arrival-in-research-10-1

论文链接:https://www.microsoft.com/en-us/research/publication/an-empirical-study-on-low-gpu-utilization-of-deep-learning-jobs/

近年来,深度学习在诸多领域取得了显著成就,并在各种智能软件应用中扮演重要角色。为了更好地进行深度学习训练和测试,IT 企业构建了深度学习平台并在平台上配备了大量的 GPU。在微软公司内部,每天都有数百名开发者在深度学习生产平台--Platform-X 上执行训练和测试作业。GPU 的利用率是衡量作业运行时性能和效率的关键指标。低 GPU 利用率作业不仅会导致资源浪费,还会显著降低生产力。

图1:Platform-X 的工作流

图1:Platform-X 的工作流

图1简要说明了 Platform-X 的工作流程。用户指定作业的资源配额、镜像、启动脚本等配置。调度程序会使用群调度算法调度作业和分配资源,并在一个或多个 GPU 计算节点上实例化容器。典型的深度学习作业的生命周期通常分为以下四个阶段:初始化、数据预处理、模型训练、模型验证。

深度学习已成为现代软件应用程序的基本组成部分,且云平台逐渐作为训练和部署模型主要基础设施。了解深度学习作业中低 GPU 利用率的原因并寻求解决方案至关重要,其有助于揭示深度学习领域中独特的软件工程挑战,并指导开发高质量、低成本的软件解决方案。

微软亚洲研究院的研究员们和微软 Azure 云平台部门的工程师们合作,对微软内部深度学习生产平台 Platform-X 上作业低利用率问题进行了深入的综合实证研究。研究员们分析了400个真实的低利用率作业(候选作业综合 GPU 利用率小于或等于50%),并在样本作业中发现了706个低利用率问题,其中大部分问题都归因于脚本或程序中的代码逻辑问题。研究员们还进一步调查了这些问题的常见根本原因(共四大类,十五个子类),并提出了相应的修复建议。

研究的主要发现包括:

(1)深度学习作业的低 GPU 利用率源于不充足的 GPU 计算以及非 GPU 任务引起的中断。

(2)大约一半(46.03%)的问题归因于各种数据操作。例如主存和 GPU 显存之间的低效数据传输(27.90%),分布式训练中 GPU 之间的持续数据交换(7.08%),数据预处理(3.97%)等。可采用异步读取、减少通信频次、异步上传数据、将数据处理分离到数据处理任务、流水线读取等方式快速修复相应问题。

(3)45.18%的问题与深度学习模型相关,并在模型训练和测试阶段就暴露出来了。例如,使用不合适的批尺寸大小(25.64%),可通过在保证 GPU 显存不溢出的前提下调整批尺寸来解决;执行低效的模型检查点操作(16.43%),可采用异步执行的方式进行修复,让 GPU 和 I/O 设备并行工作;GPU 显存不足造成无法支持更大规模的 GPU 计算(3.12%),可通过申请更多计算资源或者采用合理的数据放置策略,以及时换出冷数据来解决。

(4)一部分低利用率问题是由不合适的作业类型或配置(4.82%)及依赖库和框架错误使用问题(3.97%)引起的。例如,用户交互式地操作 GPU(2.12%);有些用户超额申请 GPU(0.85%),造成 GPU 部分闲置;一些用户提交了本不需要使用 GPU 的数据处理任务(0.57%);还有些用户的程序违反了系统和上下文约定,造成 API 误用(2.27%),从而未能充分使用 GPU 资源。

(5)大多数(84.99%)低 GPU 利用率问题可以通过少量代码或脚本的修改来解决。因此,研究员们设计了实用性强且易于实现和验证的修复方法,用户可以快速改进作业、提升 GPU 利用率。研究员们对 BERT 和 Swin Transformer 这两个典型作业进行了修复,实验结果显示它们分别取得了高达7.52倍和3.95倍的性能提升。

基于以上的实证研究结果,研究员们指出了以下未来研究的可能方向:

• 工具支持:GPU 利用率的预估和预测、代码检查工具、高效模型检查点。

• 平台提升:异构流水线、GPU 共享、分布式数据缓存。

我们的研究为提升深度学习作业和平台的 GPU 利用率提供了宝贵的建议。通过探讨深度学习作业的开发和修复(两个方面),这项工作进一步启示了可能的研究方向和工具支持、为深度学习系统和平台的设计与管理提供了更好的指导,从而帮助系统开发工程师和算法工程师解决低利用率问题并提升开发效率。

KPDDS:通过关键点驱动的数据合成解决数学问题

new-arrival-in-research-10-3

论文链接:https://arxiv.org/abs/2403.02333

尽管大语言模型(LLMs)在推理任务中表现出色,但在面对复杂的数学问题时,这些模型依然有一定的局限性。这主要是因为解决数学问题不仅要理解问题本身,还需要执行一连串的逻辑和数学操作,对模型的推理和计算能力提出了较高的要求。鉴于当前的数学问题数据集规模较小,限制了模型微调的效果,众多研究聚焦于生成更大规模的数学指令数据集。科研人员尝试对现有数据集进行改写和扩展,或是基于现有数学知识库合成全新的问题,但这些方法生成的数据在多样性和合理性方面往往不尽人意。

针对这一问题,本文引入了一种数据合成新范式——关键点驱动的数据合成(KPDDS),旨在通过理解和应用数学问题的核心概念来合成训练数据。其关键在于 KPDDS 能够从真实数据集中提取知识,并利用解题的关键点及示例来生成新问题。这种方法不仅能保证了合成数据的质量和可控性,还能够在一定程度上模拟真实数据的分布,为大语言模型的训练提供了更为丰富且准确的数据资源。

图2:KPDDS 流程图

图2:KPDDS 流程图

KPDDS 的第一阶段知识构建,由知识提取和主题共现概率矩阵构建两部分组成。在知识提取部分,KPDDS 使用 GPT-4 从种子问题中提取解决问题所需的关键知识,并将知识分为主题(Topic)和关键点(Key Points)两个层次。为进一步处理从种子问题中提取的知识数据,研究员们通过计算主题的 embedding 的余弦相似度进行去重和聚类,最终构建了“数学关键点及练习”(MPKP)数据集。在主题共现概率矩阵构建部分,KPDDS 从 MPKP 数据集中的数学问题主题构建了主题共现概率矩阵(TCPM),来量化数据集内主题间的共现概率,从而帮助模型更好地理解复杂的结构。

第二阶段练习合成,由问题生成与评分,和共识解答两部分组成。在问题生成与评分方面,KPDDS 根据 TCPM 执行主题的概率性采样,构建关键点-练习信息集。接着,再使用 GPT-4 基于信息集生成新问题,并通过打分量化评估来确定每个问题的质量,最后仅保留高于阈值的问题用于下一步合成。为了减少噪声数据的影响并增强答案生成过程的可靠性,KPDDS 采用了投票共识方法生成新问题的解答。研究员们在投票阶段采用了 sympy 等工具包,以确保生成答案的正确性,即使是以不同形式(如分数和小数)出现的等效答案也能被认定为相同。对共识策略进行的消融实验证明了该方法的有效性,并确定了最佳阈值以过滤数据。

此外,研究员们还构建了 KPMATH-Plus 数据集,由 KPMATH-M (252K)、KPMATH-G (613K) 和 MixMath (711K) 三部分组成,共包含1,576K个样本,涵盖了丰富多样的数学问题。

研究员们使用 KPMath-Plus 数据集对 Mistral-7b、DeepSeekMath-7b、Llama-2-13b、Llemma-34b 模型进行微调,均带来显著提升。KPMath-Plus-DeepSeekMath 在六个常用的数学评估数据集上获得了最佳性能,超越了7B至70B范围内的其他模型。值得注意的是,在匈牙利考试中,KPMath-Plus-Mistral-7B 的成绩仅次于 GPT-4 和 Grok-1,与其他微调模型相比,在匈牙利考试和 GSM8K 测试中展现出了均衡的性能。这证明了 KPMath-Plus 数据集的有效性,它不仅能够通过微调提升模型性能,也能确保模型解题能力的广泛适用性。

表1:在六个数学推理任务上的结果

表1:在六个数学推理任务上的结果

KPDDS 提供了一种数据合成的新范式来增强 LLMs 处理数学问题的能力,这是在探索复杂推理问题方面的初步尝试。未来,微软亚洲研究院研究员们的研究视野将不仅局限于数学,还会扩展到更广泛的学科中,通过利用跨学科知识,引入更丰富和复杂的理论与概念,生成高质量的训练数据,进一步提高模型的推理和解题能力。

MathScale:大规模合成数学推理的指令微调数据

new-arrival-in-research-10-6

论文链接:https://arxiv.org/abs/2403.02884

GitHub链接:https://github.com/microsoft/unilm/tree/master/mathscale

指令微调(instruction tuning)是一种有效提高大语言模型(LLMs)某些能力的方式,但目前能够用于提高数学推理的高质量指令微调数据十分有限(如 GSM8K 和 MATH)。因此,能够大规模合成高质量的数学推理指令微调数据对于提高 LLMs 的数学能力非常重要。

现有的合成数学推理数据的方法主要是对已有数据集进行数据扩展(data argumentation)。这些方法产生的数学推理数据会和已有的数据集非常相似,因此难以扩展到更大规模。对此,微软亚洲研究院的研究员们提出了 MathScale 方法,流程如图3所示。具体来说,首先利用 frontier LLM(如GPT-3.5)从已有的种子数学问题提取 high level 的概念(即主题和知识点)。然后,MathScale 利用已经提取的主题和知识点建立一个概念图。这个概念图中的边的权重是通过主题与主题、主题与知识点或者知识点与知识点之间的共现信息得到的。接下来,通过在建立的概念图上进行随机游走,采样出主题和知识点的组合,并再次利用 GPT-3.5 基于采样出的主题及知识点生成新的问题和答案。在概念图上的随机游走算法可以创造出多样的主题和知识点组合,从而保证生成数学推理数据的多样性。

图3:MathScale 合成数学推理数据的流程图

图3:MathScale 合成数学推理数据的流程图

本研究用 MathScale 方法生成了两百万的数学指令数据集(即MathScaleQA)。研究员们用 MathScaleQA 微调了 Mistral-7B,Llama2-7B 及 Llama2-13B,得到的模型在数学能力上超越已有方法(在 MWPBench 的十个数据集上的实验结果见表2)。

表2:在 MWPBench 的十个数据集上的实验结果

表2:在 MWPBench 的十个数据集上的实验结果

研究员们在该研究中观察到,采用 MathScale 方法生成的数据集展现出了很好的 Scaling 特性。具体来说,随着生成训练数据量的增加,模型在 MWPBench 的十个评测集上的表现呈现出近似对数增长的趋势。

图4:MathScale 在不同规模合成数据下的表现

图4:MathScale 在不同规模合成数据下的表现

该特性为未来进行更大规模的数据生成以及使用更强 frontier LLM(如GPT-4)进行数据生成提供了基础。

RecAI:大模型改进推荐系统的五种方式

new-arrival-in-research-10-10

论文链接:https://arxiv.org/abs/2403.06465

项目链接:https://github.com/microsoft/recai

推荐系统会基于用户行为来推测其偏好,从而实现内容的精准推送,但现有的主流推荐算法对于用户而言通常是被动的,且面临诸多挑战,如可交互性、可解释性、可控性等。大语言模型的诞生为解决这些挑战带来了全新的机遇。因此,大模型与推荐系统的结合成为了业界炙手可热的话题。

微软亚洲研究院的研究员们在 RecAI 一文中总结了其该领域的一系列探索,并开源了相关项目。该系列工作将于2024年5月在新加坡举办的 WebConf’24 大会上展示。

图5:RecAI 的相关项目

图5:RecAI 的相关项目

如下是研究员们在本文中梳理并开源的大模型改进推荐系统的五种方式:

1. Recommender AI Agent。鉴于大模型在时效性和领域知识方面的不足,工具增强的智能体成为了大模型落地领域应用的最经典范式之一。传统的推荐模型被视为领域内定制的工具,而大模型则扮演了大脑中枢的角色,负责与用户对话,理解用户意图,并通过调用其他工具来完成复杂的查询和推荐任务。为了更加准确、高效地完成大模型和传统推荐模型的协作,研究员们改进了智能体框架中的任务规划、记忆和工具学习的机制。

2. Generative RecLM。智能体的主要不足在于反应迟缓,无法实现流式回应。这在许多对响应速度敏感的推荐场景中尤为突出。因此,微调大语言模型,使其自身掌握领域知识,理解用户的复杂、动态指令,成为提升其性能的必经之路。为此,研究员们设计了一套结合有监督学习(SFT)和强化学习(RL)的两阶段学习方法,不仅提升了大模型响应用户指令的能力,还能减少大模型的输出错误。

3. Embedding-oriented RecLM。基于嵌入的匹配范式,无论是在推荐系统还是搜索引擎,都发挥着巨大的作用。语言模型的成熟使得任何形式的文本都能转化为有效的嵌入表征,例如用户输入的查询、用户的隐式行为序列、用户和智能体的对话历史等。根据通用的文本匹配模型,研究员们设计了10类任务,专门激发模型在物品匹配方面的能力,以便统一搜索和推荐召回、为排序任务提供特征,以及在智能体框架中作为基于自然语言输入的推荐工具。

4. Knowledge Plugin。在很多实际场景中,例如仅有 API 服务的情况下,大语言模型是不能进行修改的。在提示词中加入必要的背景知识,例如商品的描述,相似用户的行为模式等,是一种有效且常用的补充领域知识的手段。尽管现在许多技术能支持长序列建模,例如 GPT-4-turbo 可以支持128k的长文本输入,但它们还是无法直接处理推荐系统的海量用户日志。于是,研究员们设计了一套方法,通过精简用户行为和商品图谱数据,用最经济的途径为大语言模型提供领域知识。

5. RecExplainer。深度推荐模型往往是黑盒模型,缺乏可解释性。鉴于大语言模型有强大的语言表达和逻辑推理能力,又蕴含了广泛的世界知识,科研人员是否能够让它不仅能读懂文字,也能读懂深度学习模型?再结合它自身的强大智能,是否能打造一个优秀的(小)神经模型解释器?为此,研究员们将神经元状态视为不同于文本、图像等的一种新型数据模态,设计了三种对齐方法,尝试教会大语言模型感知这种模态,并且取得了极具潜力的成果。这种新的模型解释器的优势在于,它不仅能用自然语言描述解释内容,还能与用户互动,允许用户控制模型朝所需方向生成解释。

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

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

相关文章

KT-0911兔气管插管

简单介绍: 在医学和生物学常用兔进行实验,实验中经常需要给兔气管插管以进行机械通气或气管给药等操作。 详情介绍: 技术参数: 1.材质:PVC注塑一体成型 2.插管外径尺寸:5mm 3.适用动物:兔…

10分钟了解数据质量管理-奥斯汀格里芬 Apache Griffin

在不重视数据质量的大数据发展时期,Griffin并不能引起重视,但是随着数据治理在很多企业的全面开展与落地,数据质量的问题开始引起重视。 1.Griffin简介 Griffin是一个开源的大数据数据质量解决方案,由eBay开源,它支持…

FPlan Part1 EP1(MySQL)

今天完成了MySQL的第一部分,计划分为三部分,预计将在五一假期前完成,以及一个Java小游戏。 重点如下

【数据结构与算法】力扣 225. 用队列实现栈

题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元…

AI图书推荐:AI驱动的图书写作工作流—从想法构思到变现

《AI驱动的图书写作工作流—从想法到变现》(AI-Driven Book Creation: From Concept to Cash)是Martynas Zaloga倾力打造的一本实用指南,它巧妙地将写作艺术与人工智能前沿技术相结合。此书不仅揭示了AI在图书出版领域的无限潜力,…

网盘—上传文件

本文主要讲解网盘里面关于文件操作部分的上传文件,具体步骤如下 目录 1、实施步骤: 2、代码实现 2.1、添加上传文件协议 2.2、添加上传文件槽函数 2.3、添加槽函数定义 2.4、关联上传槽函数 2.5、服务器端 2.6、在服务器端添加上传文件请求的ca…

17.IIC原理及应用

IIC总线的一些特征 • 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL • 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地 址 主机可以作为主机发送器或主机接收器 • 它是一个真正的多主机总线 如果两个或更多主机同时初始…

sql今天学习总结

排序order by(默认升序) order by id desc(降序排序) order by id,number(先按id排再按name排序) in,not in and or 通配符 where name like "Aa%";选取所有以Aa开头的名字 like "%r" 以r结…

CANoe如何实现TLS协议

TLS,Transport Layer Security,传输层安全协议。是在传输层和应用层之间,为了保证应用层数据能够安全可靠地通过传输层传输且不会泄露的安全防护。 TLS安全协议的实现逻辑,在作者本人看来,大致分为三个部分&#xff1…

Shell脚本入门:编写自动化任务的利器

一、Shell概述 Shell最早产生于20世纪70年代早期的Unix操作系统中。作为一种命令解释器,它位于操作系统的最外层,负责直接与用户进行交互。Shell把用户的输入解释给操作系统,并处理操作系统的输出结果,然后将其反馈给用户。这种交…

Windows当前无法访问>SmartScreen(安装程序长时间等待)的处理方法

问题描述:Windows下点击安装程序后,安装程序进入长时间等待状态(估计有5分钟以上),等待过后弹出“当前无法访问>SmartScreen”提示窗口,提示窗口截图如下: 问题原因:系统开启了Mi…

Elasticsearch实现hotel索引库自动补全、拼音搜索功能

Elasticsearch实现hotel索引库自动补全、拼音搜索功能 在这里边我们有两个字段需要用拼音分词器,一个name字段,一个all字段。 然后我们还需要去实现自动补全,而自动补全对应的字段必须使用completion类型。目前我们酒店里面所有的字段都采用的…

MacPro(M1,M2芯片)Java开发和常用工具开源软件合集

目录 Java开发软件1 IDE1.1 idea1.2 Vs Code 2 开发工具2.1 数据库数据库模型管理数据库连接客户端 2.2 SSH/Telnet/Serial/Shell/Sftp客户端2.3 MarkDown编辑器2.3 代码片段管理粘贴 3小工具3.1 截图贴图3.2 Mac下修改hosts文件的图形化界面软件 Java开发软件 1 IDE 1.1 ide…

ElasticSearch教程入门到精通——第五部分(基于ELK技术栈elasticsearch 7.x+8.x新特性)

ElasticSearch教程入门到精通——第五部分(基于ELK技术栈elasticsearch 7.x8.x新特性) 1. Elasticsearch集成1.1 框架集成-SpringData-整体介绍1.2 Spring Data Elasticsearch 介绍1.3 框架集成-SpringData-代码功能集成1.3.1 创建Maven项目1.3.2 修改po…

pytorch中的过拟合和欠拟合

基本概念 我们知道,所谓的神经网络其实就是一个复杂的非线性函数,网络越深,这个函数就越复杂,相应的表达能力也就越强,神经网络的训练则是一个拟合的过程。   当模型的复杂度小于真实数据的复杂度,模型表…

linux中通过logrotate进行日志切割

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专…

Android 设置头像 - 裁剪及圆形头像

书接上文 Android 设置头像 - 相册拍照,通过相册和照片的设置就可以获取到需要的头像信息,但是在通常情况下,我们还想要实现针对头像的裁剪功能和圆形头像功能。 先上截图: 图像裁剪 通常裁剪可以分为程序自动裁剪和用户选择裁剪…

自适应信号处理基础及应用——DSP学习笔记五

本专栏的图片内容都来自于老师讲课的PPT,本篇博客只是我个人对于上课内容的知识结构分析和梳理。 导论 自适应系统的定义、特征、形式、举例 特征 非自适应系统 • 固定参数的设计方法 • 假定事先知道了一切可能的输入条件;在这些条件下怎样动作&#…

限流--4种经典限流算法讲解--单机限流和分布式限流的实现

为什么需要限流 系统的维护使用是需要成本的,用户可能使用科技疯狂刷量,消耗系统资源,出现额外的经济开销问题: 控制成本>限制用户的调用次数用户在短时间内疯狂使用,导致服务器资源被占满,其他用户无…

大象机器人开源六轴协作机械臂myCobot 320 手机摄影技术!

引言 有没有遇到过这样的情况:当你手持手机或相机准备拍摄视频时,心中已经构想了完美的画面,但却因为实际的限制无法捕捉到理想中的角度?这种情况可能会让人感到挫折。例如,如果想要从地面一只蚂蚁的视角拍摄&#xff…