【云栖 2023】林伟:大数据 AI 一体化的解读

云布道师

本文根据 2023 云栖大会演讲实录整理而成,演讲信息如下:
演讲人:林伟 | 阿里云研究员,阿里云计算平台事业部首席架构师,阿里云人工智能平台 PAI 和大数据开发治理平台 DataWorks 负责人
演讲主题:大数据 AI 一体化的解读

今年是 AI 大爆发的一年,大语言模型的诞生推动了席卷整个行业的大模型热潮,许多人认为“AI 的 iPhone 时代”到来了。训练大模型其实不简单,因为模型参数量的增加意味着需要更好的算力、更多的数据去锤炼,并且需要合适的工具让开发者快速迭代模型,只有这样才能更快地提高模型精度。这几年来阿里云一直在宣传 AI 工程化和规模化,其实是这轮 AI 爆发的主要推手。
在这里插入图片描述
我们看一个典型的模型开发过程,包括数据预训练、模型训练到模型部署。我们往往会非常关注训练,而忽视了整个生产流程。但是要训练出好的模型,数据越来越重要。包括数据采集、数据清理、特征提取、数据管理,再到训练过程中,需要分发哪些数据参与训练、哪些数据用来评测模型质量。所有数据都需要有验证部分,用于验证质量,这一步非常关键。低质量数据对模型的伤害力是超出想象的。这也是为什么吴达恩一直宣传了一个观点,就是更好的机器学习是 80% 的数据处理+20% 的模型。
图片

“以模型为中心”和“以数据为中心”的模型开发方式演进

这也体现了模型开发方式的演进。过去我们常常说以模型为中心的模型开发,算法工程师花大量的时间调模型结构,希望通过模型结构来去提高模型泛化能力,解决各类噪声问题。如果大家看 5 年前的 Paper,会发现大量的研究都是围绕模型结构展开的,当时的数据、算力都还不足够支撑今天这样的大模型时代。那时候的模型训练更多是“有监督的学习”,用的都是标注数据,这些数据是非常昂贵的,这也决定了在训练过程中,数据上没有太多腾挪的空间,我们更多在考虑模型结构的变化。
今天的大模型训练有非常多的无监督的学习。模型结构反而是没有那么多变化的,大家好像趋同的,都采用 Transformer 结构。这个时候我们就慢慢演进到了以数据为中心的模型开发范式里面。这个开发范式是什么?就是需要用大量数据去做无监督的训练,通过大的算力、大的数据引擎,结合相对固定的模型结构去萃取出一些有趣的智能的东西。
因此,训练使用到的数据量会暴涨,也需要用到各种方法清洗和评测数据。我们可以看到许多大模型研究的团队都会花费大量的精力去处理数据,在各种环境里面反复地、多角度地验证数据质量。通过各种各样的维度,甚至有时候还会把模型产生出来去评测,通过模型结果反馈数据的质量。在这个过程中,就需要积累非常多的数据处理工具,只有这样才能有效地支撑以数据为中心的模型开发工作对于数据质量的要求。这也是大家说到以数据为中心的模型开发的范式的核心的一个想法。
在这里插入图片描述
正是在这种趋势下面,我们一直认为大数据和 AI 是一体两面,需要实现大数据和AI的一体化,这样才能顺应当下模型开发范式的演进。

在阿里云,我们一直努力将数据和 AI 两个系统紧密地联合在一起。我们在计算基础设施层,提供适应各种场景的计算集群,包括适合大数据的以 CPU 为主的集群,以及适合大模型训练的需要 RDMA 网络的异构计算集群。在此之上,打造了大数据和AI 一体化平台,覆盖模型开发全过程的能力,包括数据采集和集成,再通过大数据平台,做大规模的离线分析,去验证数据质量。此外还有流式的计算能力。数据在大数据平台上处理好之后,就会被“投喂”到 PAI 这个负责人工智能开发的平台,去做训练和迭代。最后,在模型应用孵化上,依赖向量引擎的数据库,例如 Hologres 等,一起去构造场景化的应用。在这里插入图片描述

大数据 AI 一体化的应用场景

在正式展开大数据 AI 一体化的技术点之前,先举两个应用的例子。
第一个例子是知识库检索增强的大模型问答系统。大家可以看到最近很多做大模型的通行,都会提到这个场景,通过一个大模型,可以获得特定行业的垂直知识库。这是怎么做到的呢?首先,需要把这个知识库的数据进行清理后分片,通过大模型把它转成一个向量,再把这些向量存在一个数据系统里面,这是向量检索的数据系统。当有真实请求过来的时候,会先把 query 对应的向量找出来,转译成知识,再用这个知识去约束大模型,控制大模型“胡说八道”的冲动,这样反馈的结果会更加准确。
这个场景里面用到了很多大模型能力,包括大规模分布式的批处理,因为在创建 embedding 的时候,其实是一个非常大的数据。同时,也会用到向量数据库这样的服务能力,真实业务场景对于查询时延的敏感度很高,需要非常快的给一个向量。当然也用到了大模型训练的能力,就需要一个很好的 AI 系统。
第二个例子是个性化推荐系统。在做实时推荐的过程中,所有推荐对象的兴趣是动态变化的,往往这样的系统它的模型是时时刻刻更新的,需要根据最新的行为数据来更新模型。我们往往会把所收集到的日志经过实时或者离线处理,离线数据用来生产一个比较好的基础模型,实时数据也会去提取这个特征,经过模型训练产生一个模型的 delta,然后再把这个 delta 应用到线上的系统进行每天更新。在这里面我们可以看到有非常多的数据系统,有实时的像流计算的系统、有 AI 的系统、有批处理系统。

大数据 AI 一体化的技术实现

统一的数据和 AI 工作空间管理
首先,我们在模型构造最外层,把 AI 和大数据的流程串联在一起,这也是我们在PAI 产品里构建工作空间的最初始的想法,这样就可以把多种资源统一在一个开发平台上管理。现在阿里云人工智能平台 PAI 已经可以支撑多种计算资源,包括 ECS 资源、流计算平台,还有 PAI 灵骏智算用于大模型训练的集群,还有这次云栖已经发布的容器计算服务 ACS 等等。
仅仅接入这些资源是不够的,用户需要的是把接入的资源有机串联到一起。所以我们推出了一个 Flow 框架,把这些流程串联起来,把模型训练和数据处理的各个步骤连接起来。这里面我们提供了多种构建连接的方式,包括静态构图、SDK、图形交互式等,用来去构建复杂的大数据和 AI 交互的流程图。
Serverless云原生服务
如果想进一步地去把大数据和 AI 融合好,用户希望能够在一份资源里面提供大数据和 AI 的服务。这时候就离不开 Serverless 云原生服务技术。我们一直在说云原生,但是云原生其实是有很多维度的,云原生更多的是资源是共享的,但是这个资源是什么?其实也是需要定义的。
这个定义也分很多层次。你可以说你是硬件层面的共享,那你共享的是服务器、虚拟服务器;你也可以共享更高层次的虚拟资源,比如容器和服务本身。在不同的层次,共享层次越高,单位计算成本就会越低,当然技术的复杂度也会越高。这也是为什么做云计算的团队一直在提高自己服务的云原生化,或者是去实现更高技术复杂度的能力,这样就能以更加经济实惠的方式去提供更高层次的计算资源共享的目的,更加经济高效地提供大数据和 AI 的服务。
也是因为此,我们所有的大数据产品都是在第六个维度,也就是 Share Everything上的一个产品。但是我们都是架在了第五个维度,也就是 Shared container,就是在容器计算服务这一层,这样我们就可以把大数据和 AI 的系统有机地连在一个资源上面。在这里插入图片描述
统一调度:多负载、差异化 SLO 增强的调度
为了能够达到这样的能力其实并不是那么容易的,因为容器计算服务最开始的产生是为了支持微服务的。微服务在并行调度的力度上面,和大数据以及 AI 智算的场景有很大不同。为了能够让不同的大数据和 AI 的任务和服务,能够跑在一个资源池上,其实我们要做大量工作。比如说,大数据场景里面有些很多高并发、短时长的任务,需要大大增强 K8S 本身的吞吐能力,解决它各个层次上的性能问题,包括延时和规模。
同时我们有多元化的任务,它不仅仅有在线服务,还有计算任务,我们要在调度上增强资源的丰富度和多场景的能力。比如在复杂的 AI 场景,需要做网络拓扑感知,因为 AI 大模型训练对网络要求非常高。这时候我们怎么样在这层的容器服务上、计算服务上感知这个拓扑结构,有效做调度,我们怎么样让大数据和 AI 的 Workload 在上面存储资源,需要有非常多的负载感知、QS 感知的调度。在这里插入图片描述
多租安全隔离
对云服务来说,最重要的就是多租安全的隔离。我们需要加强云原生的 K8S 在这个方向上的能力,这样我们才能安心地把大数据和 AI 复用在一个资源上。我们在存储层、网络层都用了非常多的安全隔离的技术。这样才能把大数据和 AI 的多款产品,甚至是用户自己的在线服务,能够集成在一个资源池里面,来给云上提供企业化的使用。
在这里插入图片描述
容器计算服务 ACS
这次云栖大会发布了容器计算服务 ACS,PAI 也是第一批容器计算服务支持的首批产品之一。在容器计算服务 ACS 平台上,用户可以很好地调配自己在大数据和 AI 的资源配比,然后在统一的资源底座上、在网络上、在存储 IO 上,就能够更加自然地联在一起。
多级 Quota
我们都知道大模型的计算,计算资源是非常昂贵的。我们还要持续地加强这个底座上的一些精细化的资源管理的能力,所以我们也即将发布多级 Quota 能力,使集群的管理员可以更好地管理资源,平时让各个团队管理自己的资源,但是到了关键时刻。比如到了需要冲刺的阶段,管理员可以把所有的资源集中起来,然后去训练一些比较大的模型。这是我们的多级 Quota。
自动拓扑感知调度
对于超大模型的模型训练,我们要加强容器服务的调度能力。举一个例子,我们可以看到在模型训练里面我们常常有一个步骤叫 All-Reduce 的环节,如果不加以调度的控制,稍微乱一个顺序,去构成 reduce 的 ring,就会发现会带来一些 cross 的交换机的流量。最后我们经过拓扑感知的调度和非拓扑感知的调度,前后性能提升的增幅能有 30-40%,这是非常可观的。
MaxCompute 4.0 Data+AI
大模型训练往往需要海量的数据,就跟我们前面说的我们不仅仅要把数据存下来,更多的是我们要进行批处理进行清洗、反复评估数据质量、并根据反馈来调整数据。这时候我们就需要大数据平台,以及湖仓一体的能力在背后支撑。阿里云数仓产品MaxCompute 上推出了 MaxFrame 的开放的数据格式,可以把强大的数据管理、数据计算的能力,和 AI 系统进行有机和开放的连接。此外还有 Flink-Paimon,在流计算的场景里,可以把流计算和 online machine learning 结合起来,把数据和训练的这条通路打通。
数据集加速 DataSetAcc
在 PAI 灵骏集群的 AI 智算场景里面,不仅仅是高密的机器学习任务,还有数据处理的任务,但是高密计算的资源是非常宝贵的,这个时候可以去连接远端的大数仓来解决。但这里又会出现一个矛盾,就是远端的数据 I/O 不能匹配高密度的计算。为了解决这个问题,我们提供了一个数据集加速的 DatasetAcc 能力,就是利用 PAI 灵骏集群本地的 SD 和本地的储存来做一个近端的 cache,异步地把远端数仓的数据拉到近端。这样就能很好地解决大数据和 AI 智算集群在训练场景上的结合,提升训练效率。
正是因为具备了这样的有效连接大数据和 AI 智算集群的能力,我们才能在大规模的LLM 训练过程中更好地使用大数据分析的能力。举个例子,我们在训练通义千问的过程中,获取了大量重复的文本信息,去重是非常关键的步骤,不然整个训练数据集会被这些数据拉偏,导致有一些过拟合的情况产生。我们利用我们构造的 FlinkML 的 library 构建了一个高效的文本去重算法,算法的同学就可以快速地进行多次文本去重,提高整个模型开发的效率。在这里插入图片描述
我们前面说的都是大数据怎么能够助力于 AI 训练的部分,也就是我们经常听到的 Data for AI,但其实反方向,AI 技术的成长也能够帮助数据系统,去提高它的服务质量和效率,现在的数据分析也从 BI 走向了 BI+AI。

DataWorks Copilot
过去的数据分析做的更多的是 business intelligence,如今有更多 AI 技术可以去推动数据分析能力的提升。我们在这方面做了一些工作,比如说在数据开发和治理平台 DataWorks,我们推出了 DatawWorks Copilot,也就是代码助手。代码助手可以帮助用户用自然语言的方式,去找到感兴趣的表格,然后再帮助用户构建 SQL query,最后再去执行 query。
当然,真正要做出一个好用的代码助手,只用基础模型是不够的。DataWorks 平台上本来就积累了大量的 query,然后我们用本身的语言,就是 MaxCompute 的或者是 Flink 的语言,作为一个数据集,我们拿基础模型和这个数据集做了 finetune,产生一个垂类模型,然后再在这个垂类模型做推理,产生了这个特定场景里的更有效的代码辅助工具。通过这种方式,我们能够提效 30% 的代码的开发。在这里插入图片描述
DataWorks AI 增强分析
不仅仅是辅助代码生成,我们今年也发布了 DataWorks 数据洞察功能。我们可以通过 AI 的方式、AI 的能力,自动地根据已有数据,提供一些智能的数据洞察。通过这种方式,我们可以让用户更快速地掌握数据的特性,从而加快用户对于数据的理解和分析能力。在这里插入图片描述
以上的分享是希望通过刚才说的一些技术点和案例阐述现在 AI 和大数据的一体化的演进过程。我们坚信大数据和 AI 是相辅相成的,也希望推动数据智能更快的落地和实现。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

V100 GPU服务器安装CUDA教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

uniapp和vue3+ts创建自定义下拉选择框组件

使用uniapp开发小程序的时候,使用了uview的ui组件,但是里面没有下拉选择组件,只有Picker 选择器,但是我们想要使用下拉选择的组件,所以需要自定义个一个下拉选择的自定义组件,我就只能自己动手创建这个自定…

5月22日比特币披萨日,今天你吃披萨了吗?

比特币披萨日 1. Laszlo Hanyecz2. 最贵披萨诞生记3. 梭哈买披萨4. 未完待续 2010年5月22日,美国佛罗里达州的程序员Laszlo Hanyecz(拉兹洛哈涅克斯)用10000个比特币购买了棒约翰(Papa Johns)比萨店一个价值25美元的奶…

【Linux】指令详解(一)

目录 1. 前言2. 与指令相关的知识2.1 文件2.2 路径 3. 常见指令3.1 pwd3.2 ls3.2.1 ls -l3.2.2 ls -la 3.3 mkdir3.4 cd3.5 clear3.6 touch 1. 前言 来学习一些Linux的指令和一些相关的知识。 第一步那肯定是打开自己的xshell。 这里可以修改字体和大小。 可以使用ctrl回车全…

【汇编】“转移”综述、操作符offset、jmp指令

文章目录 前言一、转移综述1.1 :背景:1.2 转移指令1.3 转移指令的分类按转移行为根据指令对IP修改的范围不同 二、操作符offset2.1 offset操作符是干什么的?标号是什么? 2.2 nop是什么? 三、jmp指令3.1 jmp指令的功能3.2 jmp指令&…

Python - Wave2lip 环境配置与 Wave2lip x GFP-GAN 实战 [超详细!]

一.引言 前面介绍了 GFP-GAN 的原理与应用,其用于优化图像画质。本文关注另外一个相关的项目 Wave2lip,其可以通过人物视频与自定义音频进行适配,改变视频中人物的嘴型与音频对应。 二.Wave2Lip 简介 Wave2lip 研究 lip-syncing 以达到视频…

工具及方法 - 多邻国: Duolingo

网站:Duolingo 有iOS和Android应用,在App Store和Google Play上都能下载。也可以使用网页版。我就在iOS上安装了付费版,为了小朋友学习英语,一年的费用¥588。 目前学习中的课程是英语、日语和粤语。英语是小学课程&a…

单/三相dq解耦控制与特定次谐波抑制

1. 单相整流器dq坐标系下建模 单相整流器的拓扑如图所示,可知 u a b u s − L d i s d t − R i s {u_{ab}} {u_{s}} - L\frac{{d{i_s}}}{{dt}} - R{i_s} uab​us​−Ldtdis​​−Ris​。   将电压和电流写成dq的形式。 { u s U s m sin ⁡ ( ω t ) i s I …

c语言从入门到实战——回调函数与qsort的讲解和模拟实现

回调函数与qsort的讲解和模拟实现 前言1. 回调函数是什么?2. qsort2.1 使用qsort函数排序整型数据2.2 使用qsort排序结构数据 3. qsort函数的模拟实现 前言 回调函数是一个函数,它作为参数传递给另一个函数,并且能够在该函数内部被调用。在C…

代码随想录算法训练营第六十天丨 单调栈03

84.柱状图中最大的矩形 思路 单调栈 本地单调栈的解法和接雨水的题目是遥相呼应的。 为什么这么说呢,42. 接雨水 (opens new window)是找每个柱子左右两边第一个大于该柱子高度的柱子,而本题是找每个柱子左右两边第一个小于该柱子的柱子。 这里就涉…

腾讯云轻量数据库1核1G性能测评、租用费用和详细介绍

腾讯云轻量数据库服务采用腾讯云自研的新一代云原生数据库 TDSQL-C,融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL,实现超百万级 QPS 的高吞吐,128TB 海量分布式智能存储,保障数据安全可靠。腾讯云百科t…

#gStore-weekly | gBuilder功能详解之数据入库、定时任务、抽取日志、数据库管理等

gBuilder提供了一系列强大的功能模块,涵盖了数据入库、定时任务、抽取日志以及数据库管理与查询等关键领域。用户可以轻松地进行数据库的创建、定时任务的设定和执行、抽取日志的管理以及数据库的导入、导出、备份和还原操作。此外,高效的数据库查询功能…

微服务学习|Nacos配置管理:统一配置管理、配置热更新、配置共享、搭建Nacos集群

统一配置管理 在微服务当中,提供一个配置中心来将一些配置提取出来,进行统一的使用,Nacos既可以充当注册中心,也提供配置中心的功能。 1.在Nacos中添加配置文件 在Nacos控制台,我们可以在配置管理中,添加…

常见树种(贵州省):009楠木、樟木、桂木种类

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、楠木 …

【腾讯云 HAI域探秘】高性能服务器引领AI革新浪潮:从AI绘画、知识问答到PyTorch图像分类、视频检测的全方位探索

目录 1 HAI(高性能应用服务)简介2 HAI的应用场景2.1 HAI在AI作画中的灵活性与效率2.2 深入探索LLM语言模型的应用与性能2.3 HAI支持的AI模型开发环境与工具 3 基于stable difussio的AI 绘画应用实践3.1 使用AI模型中的stable diffusion模型服务3.2 设置和…

算法 LeetCode 题解 | 两个数组的交集

大家好,我是木川 一、题目描述 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2] 示例…

SpringCloud 微服务全栈体系(十五)

第十一章 分布式搜索引擎 elasticsearch 五、RestClient 操作文档 为了与索引库操作分离,再次参加一个测试类,做两件事情: 初始化 RestHighLevelClient酒店数据在数据库,需要利用 IHotelService 去查询,所以注入这个接…

48. 旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&…

python实现炫酷的屏幕保护程序

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 上次的文章如何实现一个下班倒计时程序的阅读量很高,觉得也很实用酷炫,下边是昨天的体验…

24 - 内存持续上升,我该如何排查问题?

我想你肯定遇到过内存溢出,或是内存使用率过高的问题。碰到内存持续上升的情况,其实我们很难从业务日志中查看到具体的问题,那么面对多个进程以及大量业务线程,我们该如何精准地找到背后的原因呢? 1、常用的监控和诊断…