大模型赛道如何实现华丽的弯道超车
🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL,感兴趣的小伙伴可以看看。
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝
⛱️万物从心起,心动则万物动🏄♂️
前言:Alluxio作为一款强大的分布式统一大数据虚拟文件系统,已经在众多领域展现出了其卓越的应用价值,并且为AI/ML训练赋能提供了一个全新的解决方案。
在人工智能(AI)和机器学习(ML)领域,数据驱动的决策和模型训练已成为现代应用和研究的核心。伴随大模型技术迅猛发展,模型训练所需数据的规模不断扩大,数据的处理、存储和传输都面临着巨大的挑战,传统的存储和处理方式已经无法满足实时性和性能需求。同时,不同计算框架之间的数据孤岛问题也制约了数据的有效利用。如何在激烈竞争的大模型赛道脱颖而出,实现华丽的弯道超车,成为了众多参赛选手投入巨大人力、物力不断探索的方向。
而这其中,模型训练成为重中之重。当我们进行模型训练时,需要高效的数据平台架构快速生成分析结果,而模型训练在很大程度上依赖于大型数据集。执行所有模型训练的第一步都是将训练数据从存储输送到计算引擎的集群,而数据工作流的效率会大大影响模型训练的效率。在现实场景中,AI/ML 模型训练任务对数据平台常常有以下几个需求:
01具备对海量小文件的频繁数据访问的 I/O 效率
AI/ML 工作流不仅包含模型训练和推理,还包括前期的数据加载和预处理步骤,尤其是前期数据处理对整个工作流都有很大影响。与传统的数据分析应用相比,AI/ML 工作负载在数据加载和预处理阶段往往对海量小文件有较频繁的 I/O 请求。因此,数据平台需要提供更高的 I/O 效率,从而更好地为工作流提速。
02提高 GPU 利用率,降低成本并提高投资回报率
机器学习模型训练是计算密集型的,需要消耗大量的 GPU 资源,从而快速准确地处理数据。由于 GPU 价格昂贵,因此优化 GPU 的利用率十分重要。这种情况下,I/O 就成为了瓶颈——工作负载受制于 GPU 的数据供给速度,而不是GPU 执行训练计算的速度。数据平台需要达到高吞吐量和低延迟,让 GPU 集群完全饱和,从而降低成本。
03支持各种存储系统的原生接口
随着数据量的不断增长,企业很难只使用单一存储系统。不同业务部门会使用各类存储,包括本地分布式存储系统(HDFS和Ceph)和云存储(AWS S3,Azure Blob Store,Google 云存储等)。为了实现高效的模型训练,必须能够访问存储于不同环境中的所有训练数据,用户数据访问的接口最好是原生的。
04支持单云、混合云和多云部署
除了支持不同的存储系统外,数据平台还需要支持不同的部署模式。随着数据量的增长,云存储成为普遍选择,它可扩展性高,成本低且易于使用。企业希望不受限制地实现单云、混合云和多云部署,实现灵活和开放的模型训练。另外,计算与存储分离的趋势也越来越明显,这会造成远程访问存储系统,这种情况下数据需要通过网络传输,带来性能上的挑战。数据平台需要满足在跨异构环境访问数据时也能达到高性能的要求。
综上,AI/ML 工作负载要求能在各种类型的异构环境中以低成本快速访问大量数据。企业需要不断优化升级数据平台,确保模型训练的工作负载在能够有效地访问数据,保持高吞吐量和高 GPU 利用率 。
Alluxio作为一款强大的分布式统一大数据虚拟文件系统,已经在众多领域展现出了其卓越的应用价值,并且为AI/ML训练赋能提供了一个全新的解决方案,其核心密码有四个方面组成:
01通过数据抽象化统一数据孤岛
Alluxio作为数据抽象层,可以做到数据无缝访问而不拷贝和移动数据,无论是在本地还是在云上的数据都留在原地。通过Alluxio,数据被抽象化从而呈现统一的视图,大大降低数据收集阶段的复杂性。
由于Alluxio已经实现与存储系统的集成,机器学习框架只需与Alluxio交互即可从其连接的任何存储中访问数据。因此,我们可以利用来自任何数据源的数据进行训练,提高模型训练质量。在无需将数据手动移动到某一集中的数据源的情况下,包括Spark、Presto、PyTorch和TensorFlow在内所有的计算框架都可以访问数据,不必担心数据的存放位置。
02通过分布式缓存实现数据本地性
Alluxio的分布式缓存,让数据均匀地分布在集群中,而不是将整个数据集复制到每台机器上,如图1所示。当训练数据集的大小远大于单个节点的存储容量时,分布式缓存尤其有用,而当数据位于远端存储时,分布式缓存会把数据缓存在本地,有利于数据访问。此外,由于在访问数据时不产生网络I/O,机器学习训练速度更快、更高效。
如上图所示,对象存储中存有全部训练数据,两个文件(/path1/file1和/path2/file2)代表数据集。我们不在每台训练节点上存储所有文件块,而是将文件块分布式地存储在多台机器上。为了防止数据丢失和提高读取并发性,每个块可以同时存储在多个服务器上。
03优化整个工作流的数据共享
在模型训练工作中,无论是在单个作业还是不同作业之间,数据读取和写入都有很大程度的重叠。Alluxio可以让计算框架访问之前已经缓存的数据,供下一步的工作负载进行读取和写入,如图2所示。比如在数据准备阶段使用Spark进行ETL数据处理,那么数据共享可以确保输出数据被缓存,供后续阶段使用。通过数据共享,整个数据工作流都可以获得更好的端到端性能。
04通过并行执行数据预加载、缓存和训练来编排数据工作流
Alluxio通过实现预加载和按需缓存来缩短模型训练的时间。如图3所示,通过数据缓存从数据源加载数据可以与实际训练任务并行执行。因此,训练在访问数据时将得益于高数据吞吐量,不必等待数据全部缓存完毕才开始训练。
虽然一开始会出现I/O延迟,但随着越来越多的数据被加载到缓存中,I/O等待时间会减少。在本方案中,所有环节,包括训练数据集从对象存储加载到训练集群、数据缓存、按需加载用于训练的数据以及训练作业本身,都可以并行地、相互交错地执行,从而极大地加速了整个训练进程。
如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。
相关文章:
大模型赛道如何实现华丽的弯道超车
🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…...
CAN总线物理层
本文的目的并不是为了介绍或普及CAN总线相关知识,而是为了了解CAN总线,进而为CAN通信一致性测试做知识储备。 CAN,控制器局域网,全称:Controller Area Network。1986年,由德国Bosch公司为汽车开发的网络技术,主要用于汽车的监测与控制,目的为适应汽车“减少线束的数量…...
中兴面试-Java开发
1、Springboot框架,yarn是怎么配置的 Spring Boot 本身没有直接的配置或集成与 YARN (Yet Another Resource Negotiator) 的特性,YARN是Hadoop的一个资源管理和作业调度平台。如果你想在 YARN 上运行Spring Boot应用,你需要考虑将你的Spring…...
浅谈 React 与 Vue 更新机制的差异
前言 哈喽,大家好,我是 Baker !🎉 对于前端的 Vue 和 React 相信大家并不陌生,这两个库有着截然不同的设计思想和发展目标,对于我们上层使用者来说,研究它们的差异不仅让我们更加深入的去理解…...
Delft3D水动力与泥沙运动模拟实践技术应用
水体中泥沙运动是关系到防洪,调水等方面的重要问题,也是水利和水环境领域科研热点之一。水利数值模型,在环境影响评价、防洪规划等方面也有着广泛的应用。荷兰Delft研究所开发的Delft3D模型是世界上最先进的水动力之一,能够运用于…...
Linux 本地Yearning SQL 审核平台远程访问
文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…...
Redis集群(Cluster)
1. 什么是集群 广义的集群:只要是多台机器,构成一个分布式系统,就可以称为一个“集群”。像前面的主从结构,哨兵模式都是“广义的集群”狭义的集群:redis提供的集群模式,这个集群模式主要解决存储空间不足…...
Scapy 解析 pcap 文件从HTTP流量中提取图片
Scapy 解析 pcap 文件从HTTP流量中提取图片 前言一、网络环境示例二、嗅探流量示例三、pcap 文件处理最后参考 作者:高玉涵 时间:2023.9.17 10:25 环境:Linux kali 5.15.0-kali3-amd64,Python 3.11.4,scapy…...
难得有个冷静的程序员发言了:纯编码开发实施的项目,失败的案例也有很多
难得有个冷静的程序员发言了:纯编码开发实施的项目,失败的案例也有很多。假如用低代码实施,能达到不失败或提高成功率,对软件开发项目交付,会是重大的价值。 我的观点:两者都可能失败,不同的是&…...
Leetcode.146 LRU 缓存
题目链接 Leetcode.146 LRU 缓存 mid 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 c a p a c i t y capacity capacity 初始化 LRU 缓存int get(int key) 如果关键…...
科技资讯|Canalys发布全球可穿戴腕带设备报告,智能可穿戴增长将持续
市场调查机构 Canalys 近日发布报告,表示 2023 年第 2 季度全球可穿戴腕带设备出货量达 4400 万台,同比增长了 6%。 主要归功于其亲民的价格以及消费者对价位较高的替代品仍持谨慎态度,基础手环市场尽管与去年同期相比有所下降,…...
使用https接口,无法调通接口响应不安全
网页pc使用不安全https 页面提示不安全–点击高级–跳过 接口使用部安全https 无法像页面一样可以跳过 方法:安装证书 还是无法响应报错不安全: 1、确定证书绑定ip还是域名(ip和域名都可以绑定) 使用的是httpsip,报…...
uniapp开发h5,解决项目启动时,Network: unavailable问题
网上搜了很多,发现都说是要禁用掉电脑多余的网卡,这方法我试了没有好,不晓得为啥子,之后在网上看,uniapp的devServer vue2的话对标的就是webpack4的devserver(除了复杂的函数配置项),…...
9.17 校招 实习 内推 面经
绿泡*泡: neituijunsir 交流裙 ,内推/实习/校招汇总表格 1、自动驾驶一周资讯 - 一汽与Mobileye 签署战略合作,小鹏汽车将用经销商销售逐渐替换直营模式,原小鹏汽车副总裁加盟赛力斯 自动驾驶一周资讯 - 一汽与Mobileye 签署战…...
【Python小项目之Tkinter应用】随机点名/抽奖工具大优化:新增查看历史记录窗口!语音播报功能!修复预览文件按钮等之前版本的bug!
文章目录 前言一、实现思路二、关键代码查看历史记录按钮语音播报按钮三、完整代码总结前言 老生常谈,先看效果:(订阅专栏可获取完整代码) 初始状态下,我们为除了【设置】外的按钮添加弹窗,提示用户在使用工具之前要先【设置】。在设置界面,我们主要修改了【预览文件】…...
数据结构与算法:排序算法(1)
目录 冒泡排序 思想 代码实现 优化 鸡尾酒排序 优缺点 适用场景 快速排序 介绍 流程 基准元素选择 元素交换 1.双边循环法 使用流程 代码实现 2.单边循环法 使用流程 代码实现 3.非递归实现 排序在生活中无处不在,看似简单,背后却隐藏…...
NotePad++ 在行前/行后添加特殊字符内容方法
我们在处理数据时,会遇到需要在每行数据前面、后面、开头、结尾添加各种不一样的字符 如果数据不多,我们可以自己手动的去添加,但如果达到了成百上千行,此时再机械的手动添加是不现实的 这里教给大家如何快速的在数据每行的前后…...
【JavaEE】多线程案例-线程池
文章目录 1. 什么是线程池2. 为什么要使用线程池(线程池有什么优点)3. 如何使用Java标准库提供的线程池3.1 创建一个线程池对象3.2 什么是工厂模式3.3 为什么要使用工厂模式3.4 Executors 创建不同具有不同特性的线程池3.5 ThreadPool 类的构造方法3.6 线…...
服务器搭建(TCP套接字)-fork版(服务端)
基础版的服务端虽然基本实现了服务器的基本功能,但是如果客户端的并发量比较大的话,服务端的压力和性能就会大打折扣,为了提升服务端的并发性能,可以通过fork子进程的方式,为每一个连接成功的客户端fork一个子进程,这样…...
缺失的第一个正数:高效解法与技术
缺失的第一个正数:高效解法与技术 背景 在计算机编程中,有时候需要寻找一个未排序整数数组中没有出现的最小的正整数。这篇技术博客将详细讨论这个问题,并提供一个时间复杂度为 O(n) 且只使用常数级别额外空间的解决方案。 问题描述 leet…...
常用的辅助网站(持续更新)
标题 一、uni-app方向二、H5方向 一、uni-app方向 1、uni-app官网 地址:https://uniapp.dcloud.net.cn/ 2、香蕉云编 地址:https://www.yunedit.com/ 描述:一般用来配置ios证书或安卓证书、上传ios包至商店 3、uView 地址:http…...
LeetCode 75 - 01 : 最小面积矩形
type pair struct{x, y int }func minAreaRect(points [][]int)int{mp : map[pair]struct{}{}// 将二维数组中的坐标映射到map中for i : range points{mp[pair{points[i][0], points[i][1]}] struct{}{}}// 将结果设置为一个最大值,防止影响求最小值的逻辑res : ma…...
每日一题:请解释什么是闭包(Closure)?并举一个实际的例子来说明。(前端初级)
今天继续在前端初级笔试题中被AI虐: 碱面的答案,问题:初级,回答:初级https://bs.rongapi.cn/1702510598371151872/14我的回答如下: 闭包是指由大括号包裹的一个区域,这个区域代表了一个变量生效…...
广告主必看!NetMarvel五大优势驱动出海App投放增长
App出海走到今天,流量红利早就不存在,摆在广告主面前最棘手的两个问题,一是不起量,二是买量成本太高,得不偿失。 如何在确保出海应用用户规模有所增长的同时,也保证整体ROI处在较高水平?NetMar…...
数据结构与算法之复杂度
时间复杂度 1.抓大头 2.常数用o(1),低阶函数也用o(1)代替(直接去掉) 3.取最坏情况 对数相关写法的规定...
ATECLOUD电源测试软件平台如何测试电源纹波?
电源纹波是影响电源稳定性的重要因素,过大的纹波会导致电源模块的工作效率降低,可能使电源模块直接损坏。使用ATECLOUD碘盐测试软件平台对纹波进行测试,检测其工作情况,以确保其稳定性和性能。 电源纹波的产生 电源的纹波通俗的来…...
数据结构与算法:排序算法(2)
目录 堆排序 使用步骤 代码实现 计数排序 适用范围 过程 代码实现 排序优化 桶排序 工作原理 代码实现 堆排序 二叉堆的特性: 1. 最大堆的堆顶是整个堆中的最大元素 2. 最小堆的堆顶是整个堆中的最小元素 以最大堆为例,如果删除一个最大堆的…...
1_图神经网络GNN基础知识学习
文章目录 安装PyTorch Geometric安装工具包 在KarateClub数据集上使用图卷积网络 (GCN) 进行节点分类两个画图函数Graph Neural Networks数据集:Zacharys karate club network.PyTorch Geometric数据集介绍 edge_index使用networkx可视化展示 Graph Neural Networks…...
瑞芯微:基于RK3568的ocr识别
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。OCR的应用场景 卡片证件识别类:大陆、港澳…...
C++真的是 C加加
📝个人主页:夏目浅石. 📌博客专栏:C的故事 🏠学习社区:夏目友人帐. 文章目录 前言Ⅰ. 函数重载0x00 重载规则0x01 函数重载的原理名字修饰 Ⅱ. 引用0x00 引用的概念0x01 引用和指针区分0x03 引用的本质0x04…...
京东云免费建wordpress/内蒙古seo
一、面向对象编程 面向过程编程:关注于解决问题的方法、步骤。 面向对象编程:关注于谁能解决问题(类),以及解决问题需要的数据(成员变量),以及解决问题需要的技能(成员函数)。 抽象:想象出一个能解决问题的…...
温州网站制作要多少钱/郑州seo优化外包
然后再配置监听,web.xml配置:12com.test.OnlineUserListenerlistener-class>3listener>一旦监听器发现调用了sessionDestoryed方法就会把其用户从在线人数中delete,在下面两种情况下会发生sessionDestoryed事件a.执行session.invalidat…...
临朐网站建设定制/首页关键词排名
modal弹出框遮罩层可实现提示信息、验证码等功能 然而在官方文档已经删除了modal的页面,说要废弃modal 就个人而言modal组件无法被wx.showModal完全替代。大家都知道小程序的wxml的组件可以通过改变js的值实现重新渲染,而接口是无法实现的 有同感…...
部署wordpress最应该用什么os/重庆seo标准
前言 本文将会使用Python实现一个最简单的RPC框架,玩具向,不具有实用意义,但可以让你清醒的理解RPC框架的几个组成部分,只是比看Python自带的xmlrpc清晰。 本文需要一点Python socket基础。 如果你对Python Socket基础方面的内容不…...
外贸电子商务网站建设/推广是什么意思
1.与或有事项相关的“可能”是指()。 A.发生的可能性大于95%但小于100% B.发生的可能性大于30%但小于或等于50% C.发生的可能性大于50%但小于或等于95% D.发生的可能性大于5&#x…...
网站移动端是什么问题/网络游戏推广
在开始读书会开始前,还是要重申读书会的意义,从目前的知识体系来看,当今的人们接触的大多是碎片化的信息, 也就是需要哪个看那个,出了问题解决那个问题,看似在当今的社会中,大部分人都是这样解决问题的,但碎片化的知识会带来的问题是,看问题不全面, 解决问题可能只会往一个方向…...